Express – 将数据传递给所有路线
嗨,是否有一个“明确”的具体方式,使一些全球性的应用程序数据可用于我所有的路线? 还是仅仅使用module.exports语句?
任何指针都比欢迎。 节点noob – 顺便说一句
您可以设置布局中也可用的全局对象
app.js
app.configure(function(){ app.set('view options', {pageTitle: ''}) } app.get('/',function(request, response){ response.app.settings['view options'].pageTitle = 'Hello World' response.render('home') })
layout.jade
!!! html head title= pageTitle body!= body
您可以在应用的设置部分使用app.set()
,以使其可用于每个请求。 应用程序对象可通过req.app
在您的路线。
我个人喜欢做一个app.set('name', obj);
在设置和路线我通过req.app.settings.name
访问它。
您也可以使用dynamic帮助器将数据传递到所有视图。
app.js
// Dynamic Helpers app.dynamicHelpers({ appSettings: function(req, res){ return {name:"My App", version:"0.1"}; } });
现在在你的视图中,你可以像这样使用它(我在这个例子中使用了ejs,但它应该可以与玉或任何其他视图引擎一起工作):
view.ejs
<%= appSettings.name %> <%= appSettings.version %>
希望这可以帮助。