在玉视图上获取“语法错误”

我正在尝试一个简单的聊天应用程序使用简单的玉视图引擎与快递。 当我运行我的应用程序时,我得到以下视图代码的语法错误。 但是,它是如此简单。

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')