Knoten.js/jade syntax error: unexpected token ;

Ich versuche zu lernen node.js. Ich arbeite ein Beispiel, in dem OReilly Buch "Building Knoten-Anwendungen mit mongodb und Rückgrat". Bei mir läuft in einen Fehler, und ich habe nicht in der Lage gewesen, es herauszufinden.

Ich jagte den Fehler für eine Weile (in meiner eigenen version des Kodex). Die meisten ähnlichen Fälle standen im Zusammenhang mit der jade-parsing-Kommentare schlecht (was ich hier nicht verwende). Sieht aus wie eine andere Möglichkeit ist die Modul-Versionen nicht kompatibel mit diesem code oder jeder andere, aber ich bin nicht bereit zu gehen, zu Graben in. Ich kopierte den code exakt aus dem Beispiel, statt mit meiner eigenen version, und ich bin immer das gleiche Ergebnis.

Die Ablaufverfolgung Punkte zu einer Linie, die in die jade-template, aber ich bin mir nicht sicher wo das problem wirklich ist.

Hier ist der code aus dem Beispiel .js-Datei:

var http = require('http');
var express = require('express');
var app = express();
var server = http.createServer(app);
var io = require('socket.io').listen(server);

var catchPhrases = ['Why I oughta...', 'Nyuk Nyuk Nyuk', 'Poifect!', 'Spread out!', 'Say a few syllables!', 'Soitenly!'];

app.set('view engine', 'jade');
app.set('view options', { layout: true});
app.set('views', __dirname + '/views');

app.get('/stooges/chat', function(req, res, next) {
res.render('chat');
});

io.sockets.on('connection', function(socket) {
var sendChat = function(title, text) {
socket.emit('chat', {
title: title,
contents: text
});
};

setInterval(function() {
var randomIndex = Math.floor(Math.random() * catchPhrases.length);
sendChat('Stooge', catchPhrases[randomIndex]);
}, 5000);

sendChat('Welcome to Stooge Chat', 'The Stooges are on the line');

socket.on('chat', function(data) {
sendChat('You', data.text);
});
});

app.get('/?', function(req, res) {
res.render('index');
});

var port = 8080;
server.listen(port);
console.log('Listening on port ' + port);

Und hier ist der entsprechende jade-Vorlage:

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

Und hier ist die Ausgabe:

   info  - socket.io started
Listening on port 8080
SyntaxError: /home/rob/Documents/Node/views/chat.jade:9
    7| socket.on('chat', function(data) {
    8| document.getElementById('chat').innerHTML = '<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 (/home/rob/Documents/Node/node_modules/jade/lib/lexer.js:31:3)
    at Object.Lexer.attrs (/home/rob/Documents/Node/node_modules/jade/lib/lexer.js:648:20)
    at Object.Lexer.next (/home/rob/Documents/Node/node_modules/jade/lib/lexer.js:868:15)
    at Object.Lexer.lookahead (/home/rob/Documents/Node/node_modules/jade/lib/lexer.js:114:46)
    at Parser.lookahead (/home/rob/Documents/Node/node_modules/jade/lib/parser.js:100:23)
    at Parser.peek (/home/rob/Documents/Node/node_modules/jade/lib/parser.js:77:17)
    at Parser.tag (/home/rob/Documents/Node/node_modules/jade/lib/parser.js:733:22)
    at Parser.parseTag (/home/rob/Documents/Node/node_modules/jade/lib/parser.js:719:17)
    at Parser.parseExpr (/home/rob/Documents/Node/node_modules/jade/lib/parser.js:188:21)

InformationsquelleAutor robm | 2014-03-20

Schreibe einen Kommentar