【发布时间】:2011-06-10 18:26:20
【问题描述】:
我正在使用 Express.js(在 Node.js 上),我知道您可以通过“locals”参数呈现带有自定义数据的视图。 (res.render("template", { locals: { foo: "bar" } });)
有没有办法拥有“全局”? (即每个视图都可以访问的数据)
我看到了view options,但这不是递归的,所以如果我在模板中使用任何本地人,它会替换我设置的本地人。
这是我的用例:我想让它可以在每页的基础上添加 CSS/JS 文件,这是我主要布局的一部分。问题是,如果我没有在每个渲染上明确设置这些数组,我会得到一个未定义的错误,所以在我的模板中我总是必须做typeof css !== "undefined" 舞蹈。此外,我还有其他选择框选项列表,我不想显式添加到我的每个表单中。
【问题讨论】:
-
您不能通过定义一个具有全局范围的变量(例如通过您的 require 语句)然后在您的一个 app.get 调用中引用它来做到这一点吗?
-
是的,但是我仍然必须在每次调用
render()时明确地传递该数据。 -
哈哈!我发现自己正在寻找这个解决方案,而我又回到了一月份的时候。感谢您提出这个问题!
标签: javascript node.js express