【问题标题】:Express.js, Node.js Jade - Following the expressjs.com tutorials, and getting errorsExpress.js、Node.js Jade - 遵循 expressjs.com 教程并遇到错误
【发布时间】:2011-08-16 09:31:52
【问题描述】:

好吧,我正在尝试进入 Node.js / Express.js - 但是我在通过截屏视频时遇到了一些问题,第一个问题现已解决,当它被发现时非常明显 (@987654321 @)。

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

表示 500 SyntaxError:意外的标识符 * 在 Object.Function (未知来源) * 在 Object.compile (/usr/local/lib/node/.npm/jade/0.10.6/package/lib/jade.js:230:10) * 在 ServerResponse._render (/usr/local/lib/node/.npm/express/2.3.2/package/lib/view.js:368:22) * 在 ServerResponse.render (/usr/local/lib/node/.npm/express/2.3.2/package/lib/view.js:234:17) * 在对象。 (/home/duncan/helloExpress/app.js:46:7) * 在 nextMiddleware (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:139:34) * 在参数 (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:147:16) * 通过 (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:155:10) * 在 Object.router [作为句柄] (/usr/local/lib/node/.npm/express/2.3.2/package/lib/router/index.js:161:6) * 在下一个(/usr/local/lib/node/.npm/connect/1.4.0/package/lib/http.js:204:15)

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

变种用户 = [ {名称:'邓肯',电子邮件:'duncan@email.com'}, {名称:'鲍勃',电子邮件:'bob@email.com'} ];

和... 调用和渲染新 users.jade 的位

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

我不知道我今天是不是瞎了眼,但我真的很想让这个例子工作。

注意。 app.js 46:7 是 'res.render' 字符 7 是 .在 res 和 render 之间。 - 从错误消息中。

users.jade文件如下:

h1 用户
ul#用户
    - 用户中的每个用户
    li=用户名

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

它会渲染页面,只要我添加它们,它就会给我上面的错误消息,并说 res.render('users' - on the dot (46:7) 有问题。

PS。我正在关注这里的第二个教程:http://expressjs.com/screencasts.html

我的缩进:

[缩进] - [缩进] users 中的每个用户 [缩进] [缩进] li= [缩进] 用户名

【问题讨论】:

    标签: node.js pug express


    【解决方案1】:

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

    我有:

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

    很明显 ^^^ 正确的地方缺少一个逗号!!!!
    Jade 很棒,但哇,错误信息对初学者来说很糟糕。

    应该是:

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

    【讨论】:

      【解决方案2】:

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

      这应该可行:

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

      【讨论】:

      • 我让它工作了,起初我以为我没有,但后来我意识到我做了一些其他的改变来尝试让它工作,从而同时破坏它。所以基本上 Jade 需要非常精确的压痕,这是我需要牢记的。谢谢米克尔。 :)
      • 是的,这就是 Jade 和类似语法的权衡。您不必键入像 []{}() 或类似的分隔符,但您必须非常准确地使用缩进才能正确解析代码。在每个块之后缩进的所有内容都是循环的一部分,因此在您的情况下它找不到缩进块,并抱怨空循环:)
      • 有一个很好的README 以及一个充满examples 的文件夹,我倾向于参考:)
      猜你喜欢
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 2013-03-20
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多