2012-02-19 73 views
2

明確地說,當我使用路由中間件時,可以追加到請求對象嗎?或者這是一種不好的模式?備擇方案?謝謝。可安全地追加到req參數?

app.get('/', getLayout, function(req, res){ 
    if(req.layout == 'simple') ...render simple layout... 
    else ...render full layout... 
}); 

其中

getLayout = function(req, res, next){ 
    req.layout = (req.params.blah == 'blah') ? 'layout_simple' : 'layout_full'; 
    next(); 
} 

回答

5

我不明白爲什麼你不應該。

我做了很多。

我覺得這是中間件的典型做法。

從快遞文檔: http://expressjs.com/guide.html#route-middleware

他們在自己的中間件作爲當前用戶設置req.user。

+0

謝謝,當他們使用它時一定錯過了 – Mike 2012-02-19 21:53:50

+0

沒問題,我也是最佳實踐的奴隸:) – 2012-02-19 22:02:16

0

我同意j_mcnally這是一個很好的模式,只要你不過分。具體而言,我附加了大部分與對象對象的響應更密切相關的內容。這可能是佈局信息,HTML片段,響應的中間jsdom env表示等等。對於req,添加表示查詢字符串或請求主體信息的東西是有道理的。這將是東西像輸入參數,分析搜索查詢,當前用戶對象等