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 %> 

希望这可以帮助。