Express.js,Node.js Jade - 遵循expressjs.com教程,并获得错误

时间:2011-05-01 09:29:00

标签: node.js pug express

好吧,我正试图进入Node.js / Express.js - 但是我一直有一些问题要经过截屏视频,第一个问题,现在已经解决了,当它被发现时非常明显({{ 3}})。

但是,我现在收到以下错误:

Express
500 SyntaxError: Unexpected identifier

    * at Object.Function (unknown source)
    * at Object.compile (/usr/local/lib/node/.npm/jade/0.10.6/package/lib/jade.js:230:10)
    * at ServerResponse._render (/usr/local/lib/node/.npm/express/2.3.2/package/lib/view.js:368:22)
    * at ServerResponse.render (/usr/local/lib/node/.npm/express/2.3.2/package/lib/view.js:234:17)
    * at Object. (/home/duncan/helloExpress/app.js:46:7)
    * at nextMiddleware (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:139:34)
    * at param (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:147:16)
    * at pass (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:155:10)
    * at Object.router [as handle] (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:161:6)
    * at next (/usr/local/lib/node/.npm/connect/1.4.0/package/lib/http.js:204:15)

我的app.js代码如下: 声明对象的用户数组

var users = [
    { name: 'Duncan',   email: 'duncan@email.com'},
    { name: 'Bob',  email: 'bob@email.com'}
];

和... 调用并呈现新users.jade的位


app.get('/users', function(req, res){
  res.render('users', {
        users: users
  });

});

我不知道今天我是不是只是失明了,但我真的想让这个例子有效。

NB。 app.js 46:7是'res.render'字符7是。 res和render之间。 - 来自错误消息。

users.jade文件如下:

h1 Users
ul#users
    -   each user in users
    li= user.name

如果我摆脱了: 用户中的用户 和li = user.name

它渲染页面,一旦我添加它,它就会给我上面的错误信息,并说res.render有错误('用户' - 在点上(46:7)。

PS。我在这里关注第二个教程:Express.js, Node.js Jade vim

我的缩进:

[indent] - [indent] each user in users
[indent][indent] li= [indent] user.name

2 个答案:

答案 0 :(得分:4)

您需要从每个语句中缩进li= user.name另一个级别。

这应该有效:

h1 Users
ul#users
  - each user in users
    li= user.name

答案 1 :(得分:0)

我收到此错误是因为我的layout.jade

我有:

html(class="no-js" lang="en")

并且清楚地说^^^点正确的是迷路了!!!! 翡翠是伟大的,但是哇,这个错误信息对初学者来说是不好的。

应该是:

html(class="no-js", lang="en")