javascript - 在 Jade View 上获取 'Syntax Error'

标签 javascript node.js express pug

我正在尝试使用带有 express 的简单 jade View 引擎来创建一个简单的聊天应用程序。当我运行我的应用程序时,我在以下 View 代码中遇到语法错误。但就是这么简单。

    extends layout
    block scripts
      script(type='text/javascript', src='/socket.io/socket.io.js')
      script(type='text/javascript')
        var socket = io.connect('http://localhost:8080');
        socket.on('chat', function(data) {
          document.getElementById('chat').innerHTML = '<p><b>' + data.title + '</b>: ' +   data.contents + '</p>';
        });

        var submitChat = function(form) {
          socket.emit('chat', {text: form.chat.value});
          return false;
        };
    block content
     div#chat
      form(onsubmit='return submitChat(this);')
        input#chat(name='chat', type='text')
        input(type='submit', value='Send Chat')

我遇到了这个错误:

SyntaxError: views/chat.jade:9 
7| document.getElementById('chat').innerHTML = 
8| '<p><b>' + data.title + '</b>: ' + data.contents + '</p>'; > 
9| }); 
10| var submitChat = function(form) { 
11| socket.emit('chat', {text: form.chat.value}); 
12| return false; 
Unexpected token ; at Function (<anonymous>) at assertExpression 

最佳答案

似乎您在这里漏掉了一个简单的,请参阅Jade Reference .

例如:

script(type='text/javascript')
  var socket = io.connect('http://localhost:8080');

会给予

<script type="text/javascript">
  <var>socket = io.connect('http://localhost:8080');</var>
</script>

你得到了你的Unexpected token错误。

script(type='text/javascript').
    var socket = io.connect('http://localhost:8080');

为了向您展示差异,上面的代码将给出:

<script type="text/javascript" src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
  var socket = io.connect('http://localhost:8080');
</script>

所以你的代码应该是这样的:

extends layout
block scripts
  script(type='text/javascript', src='/socket.io/socket.io.js')
  script(type='text/javascript').
    var socket = io.connect('http://localhost:8080');
    socket.on('chat', function(data) {
      document.getElementById('chat').innerHTML = '<p><b>' + data.title + '</b>: ' +   data.contents + '</p>';
    });

    var submitChat = function(form) {
      socket.emit('chat', {text: form.chat.value});
      return false;
    };
block content
 div#chat
  form(onsubmit='return submitChat(this);')
    input#chat(name='chat', type='text')
    input(type='submit', value='Send Chat')

关于javascript - 在 Jade View 上获取 'Syntax Error',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22435210/

相关文章:

javascript - Angular 和代码镜像

javascript - 使用 onShow 和 onLoad 为 dijit.layout.ContentPane 创建程序

node.js - 请求超时时,nodejs http.request关闭过程

node.js - "Object {} has no method ' 尝试将项目添加到 Mongoose 数组时转换为 ' error"

node.js - 如何在 express/jade 中将非 ASCII 字符编码为\uXXXX 序列

node.js - ReactJS webapp 中的业务逻辑

javascript - 嵌入IFrame html页面读取IFrame html属性

javascript - 为什么我不能在 javascript 中将 1 加到一个大数上

node.js - Nodejs "closing directory handle on garbage collection"

javascript - Express 4 命名空间参数?