【问题标题】:Getting 'Syntax Error' on jade view在翡翠视图上出现“语法错误”
【发布时间】:2014-03-16 09:32:19
【问题描述】:

我正在尝试一个简单的聊天应用程序,它使用简单的翡翠视图引擎和 express。当我运行我的应用程序时,出现以下视图代码的语法错误。但就是这么简单。

    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 

【问题讨论】:

  • 如果您真的希望有人调试您的代码,请发布您拥有的真实代码......并且请正确格式化您的问题。
  • form(onsubmit='return submitChat(this)') 尝试删除;从这一行
  • 没有。什么都没发生。这是有效的语法。

标签: javascript node.js express pug


【解决方案1】:

您好像错过了一个简单的,请参阅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')

【讨论】:

  • 我希望我能放弃更多的票,非常详细的答案来解释细微的错误。
猜你喜欢
  • 2012-11-19
  • 1970-01-01
  • 2013-08-23
  • 2014-04-10
  • 1970-01-01
  • 2016-06-06
  • 2016-03-09
  • 2015-07-22
  • 1970-01-01
相关资源
最近更新 更多