2
我正在使用Express來爲node.js應用程序中的網頁提供服務。Node.js/Express - 通過請求/響應對象修改響應模板上下文
比方說,我想有一個變量foo
在render
響應對象的方法呈現的所有視圖中可用。我知道我可以爲這個任務定義動態助手。然而,我發現他們不適合當你需要異步設置輔助變量像這樣(貓鼬爲例):
Thing.count(filter, function(error, thingCount) {
foo = thingCount;
}
我使用連接中間件的方式,這適合我試過了,但這裏的問題是如何影響響應上下文。通過觀察render
方法定義express/lib/view.js
我發現,它可以被寫入app._locals操縱對象:
function putFooIntoContext (req, res, next) {
Thing.count(filter, function(error, thingCount) {
res.app._locals.foo = thingCount;
next();
}
}
它的作品如預期,不過,我有點擔心這樣直接的方法是不最好的解決方案。有人可以給我任何想法如何通過與Express開發人員合理設計的請求/響應對象交互來影響響應上下文嗎?