2015-11-25 3 views
3

Можно ли всегда передавать определенные переменные до res.render по умолчанию?Всегда передавать переменную в экспресс res.render

В частности, я использую промежуточное программное обеспечение passport, которое заполняет req.user с помощью текущего пользователя. Мне нужно получить доступ к этому на каждой странице моего сайта.

Это утомительно поставить его каждый раз - и, если я забуду, это выглядит как если пользователь не вошел в систему

+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

Смежные вопросы