在做在线聊天时遇到的Nodejs相关问题

在做在线聊天时遇到的Nodejs相关问题

e:\chat2\chat\views\chat.jade, line 24: Implicit textOnly for script and style is deprecated. Use script. or sty le. instead. 这个怎么解决

4 回复

在使用 Node.js 和 Jade 模板引擎进行在线聊天应用开发时,你可能会遇到一些关于 scriptstyle 标签的警告。这些警告提示你隐式文本处理方式已经过时,建议使用新的语法来明确指定标签内容。

解决方法

Jade 已经更名为 Pug,因此建议升级到 Pug 并更新你的模板文件。如果你坚持使用 Jade,可以继续使用新的语法来避免警告。

示例代码

假设你有以下原始的 Jade 模板代码:

doctype html
html
  head
    style
      .message {
        color: blue;
      }
    script
      function sendMessage() {
        console.log("Message sent");
      }
  body
    h1 Chat Room
    button(onclick="sendMessage()") Send Message

根据警告信息,你需要将 stylescript 标签改为 style.script. 来明确指定它们的内容。以下是修改后的代码:

doctype html
html
  head
    style.
      .message {
        color: blue;
      }
    script.
      function sendMessage() {
        console.log("Message sent");
      }
  body
    h1 Chat Room
    button(onclick="sendMessage()") Send Message

解释

  • style.script.: 这些语法明确告诉 Pug/Jade 你在定义样式或脚本内容。这种方式更清晰,并且符合最新的语法规范。

  • .message: 定义了一个 CSS 类 .message,给它设置颜色为蓝色。

  • sendMessage(): 定义了一个 JavaScript 函数 sendMessage,当按钮被点击时会在控制台输出 “Message sent”。

通过这种方式,你可以避免隐式文本处理的警告,并确保你的代码更加清晰和易于维护。如果你计划长期维护这个项目,建议升级到 Pug 并查看 Pug 的官方文档以了解最新的语法和最佳实践。


jade的一个坑,官方有解答。

换掉jade吧,遇到复杂的模板的时候语法很让人抓狂 而且性能也不佳

在Jade模板引擎(现称为Pug)中,隐式文本渲染对于<script><style>标签已被弃用。你需要显式地指定这些标签的类型。可以通过添加一个点来明确指定它们是脚本或样式。

解决方案

你可以将以下代码:

script
  console.log('Hello World')

修改为:

script.
  console.log('Hello World')

或者对于样式:

style
  .chat { color: red; }

修改为:

style.
  .chat { color: red; }

示例代码

假设你有一个简单的聊天页面,其中包含一些内联JavaScript代码:

聊天页面 (chat.jade)

doctype
html
  head
    title Chat Room
    style.
      .chat { color: blue; }
  body
    h1 Chat Room
    div.chat
      p Hello, this is a chat message.
    script.
      console.log('Page loaded');

通过这种方式,你可以避免Jade/Pug模板引擎的警告,并确保代码正确解析。

回到顶部