【发布时间】:2011-01-06 02:49:15
【问题描述】:
我正在使用 Jade 模板引擎使用 node.js 和 express 实现一个 webapp。
模板渲染良好,可以访问助手和动态助手,但不能访问除“body”局部变量之外的局部变量,它由 express 提供,在我的 layout.jade 中可用和定义。
这是部分代码:
app.set ('view engine', 'jade');
app.get ("/test", function (req, res) {
res.render ('test', {
locals: { name: "jake" }
});
});
这是 test.jade:
p hello
=name
当我删除第二行(引用名称)时,模板会正确呈现,在网页中显示单词“hello”。当我包含 =name 时,它会引发 ReferenceError:
500 ReferenceError: Jade:2 NaN. 'p hello' NaN. '=name' name is not defined
NaN. 'p hello'
NaN. '=name'
我相信我正在关注并准确地表达关于局部变量的示例。我做错了什么,或者这可能是快递或玉的错误?
【问题讨论】:
-
在这里工作正常(Node 3.4,Jade 0.6,Express 0.7.2),你能提供更多信息吗?例如。您的版本以及 layout.jade。
-
谢谢 - 修复了它。在一些安装混乱期间,我最终在 ~/.node_libraries 下找到了一个过时的 express 目录。删除它并运行“npm install express”来安装最新的解决了这个问题。
-
对于 StackOverflow,我该怎么办?删除问题?它对其他人来说并不是非常有效,因为它只是一个版本的东西。而且我无法将您的评论标记为正确答案。
-
保持原样,网站上有更糟糕的问题应该删除,例如最近的一个:stackoverflow.com/questions/4612706/…