您是否有“快速”特定方式可以为我的所有路线提供一些全球应用数据? 或者只是使用module.exports语句?
任何指针都非常受欢迎。 Node noob - btw
答案 0 :(得分:11)
您可以设置布局中也可用的全局对象
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
答案 1 :(得分:7)
您可以在应用的设置部分使用app.set()
,使其可用于每个请求。可以通过路线中的req.app
获取应用对象。
就个人而言,我喜欢在设置和路线中app.set('name', obj);
通过req.app.settings.name
访问它。
答案 2 :(得分:2)
您还可以使用动态帮助程序将数据传递给所有视图。
app.js
// Dynamic Helpers
app.dynamicHelpers({
appSettings: function(req, res){
return {name:"My App", version:"0.1"};
}
});
现在你的观点可以像这样使用它(我在这个例子中使用了ejs,但它应该适用于jade或任何其他视图引擎):
view.ejs
<%= appSettings.name %>
<%= appSettings.version %>
希望这有帮助。