2016-05-12 9 views
3

Я делаю модуль входа в систему, используя сеанс (используя экспресс и узлы). Когда пользователь вошел в систему, я сохраняю пользователя в сеансе.Как получить значение сеанса в ejs

req.session.user= ... 

Как я могу получить значение сеанса в .ejs посмотреть, как:

<label> 
      您好!<%= req.session.user.username %> 
</label> 

Но это не работает.

я могу это сделать, это:

router.get('/home',function(req, res){ 

    var val = req.session.user; 
    res.render('home',{user:val}); 


}); 

.ejs:

<p> 
      您好!<%= user.username %> 
</p> 

Но это так хлопотно. Каков лучший способ сделать это?

(В PHP я могу просто использовать $ _SESSION, чтобы получить значение в файл представления.)

ответ

7

Вы можете использовать res.locals выставить конкретные данные для всех шаблонов.

В вашей ситуации, вы можете добавить следующую межплатформенное Выразить:

app.use(function(req, res, next) { 
    res.locals.user = req.session.user; 
    next(); 
}); 

Это сделает user переменная доступна во всех шаблонах.

Вы должны убедиться, что вы добавить, что промежуточное программное послеreq.session было установлено (что, как правило, после того, как express-session добавлен промежуточного слоя цепи).

+0

Большое спасибо. С вашей помощью я решил свою проблему. –

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