嗨,是否有一種「快遞」特定方式可以讓我的所有路線都可以使用某些全球應用數據? 還是僅僅使用module.exports語句的情況?快遞 - 將數據傳遞給所有路線
任何指針比歡迎。 節點noob - btw
嗨,是否有一種「快遞」特定方式可以讓我的所有路線都可以使用某些全球應用數據? 還是僅僅使用module.exports語句的情況?快遞 - 將數據傳遞給所有路線
任何指針比歡迎。 節點noob - btw
您可以設置一個全局對象,也可以在你的佈局
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
獲取。
就我個人而言,我喜歡在設置和我通過req.app.settings.name
訪問它的路線中執行app.set('name', obj);
。
您也可以使用動態助手將數據傳遞給所有視圖。
app.js
// Dynamic Helpers
app.dynamicHelpers({
appSettings: function(req, res){
return {name:"My App", version:"0.1"};
}
});
現在對你的看法,你可以使用它像這樣(我用EJS這個例子,但它應該用玉或任何其他視圖引擎工作):
view.ejs
<%= appSettings.name %>
<%= appSettings.version %>
希望這有助於。
你的答案的缺點是對於每個請求你將處理助手。對於像版本這樣的靜態數據,'app.set('view options',someData)'更適合。 DynamicHelpers適用於動態數據。 – jackdbernier
好點!非常感謝您的評論! – FMontano
你的意思是res.app不是req.app不是? – FireZenk