2015-11-25 51 views
3

默認情況下是否可以始終將某些變量傳遞給res.render始終將變量傳遞給Express res.render

更具體地說,我正在使用與當前用戶填充req.userpassport中間件。我需要在我的網站的每個頁面上訪問它。

這是乏味的,每次提供的 - 如果我忘了,它表現爲,如果用戶沒有登錄

+0

你能告訴我們一些代碼,更好地解釋發生了什麼問題嗎? – Rodmentou

回答

3

簡單的解決辦法是創建您自己的中間件:

function userView(req, res, next) { 
    res.locals.user = req.user; 
    next(); 
} 

//... 

app.use(passport.initialize()); 
app.use(passport.session()); 
//... 
app.use(userView); 

對於每個請求,這將填充一個局部變量user,然後可以訪問鏈中稍後呈現的視圖。激活這個中間件護照一或req.user將是未定義的。

+0

謝謝!這似乎是一個好主意。 – phillipwei