你好,有没有一种“express”特定的方法可以使一些全局应用程序数据对所有我的路由可用? 还是只需要使用一个module.exports语句? 欢迎任何指针。 顺便说一句,我是 Node 新手。
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 Helpers
app.dynamicHelpers({
appSettings: function(req, res){
return {name:"My App", version:"0.1"};
}
});
现在你可以像这样在视图中使用它(我在这个例子中使用了ejs,但它应该适用于jade或任何其他视图引擎):
view.ejs
<%= appSettings.name %>
<%= appSettings.version %>
app.set('view options', someData)
。DynamicHelpers 适用于动态数据。 - jackdbernier