Im с использованием NodeJS, ExpressJS, PassportJS и Jade.Проверка смены сессии в Jade View
У меня есть меню заголовка, в котором будет отображаться логин или выход из системы. Вход отображается, если пользователь еще не вошел в систему, и выйдите из системы, если пользователь уже выполнил вход.
Меню находится в отдельном файле нефрита: menu.jade
и входит в остальные нефритовые файлы.
include menu
В menu.jade, как я могу проверить, если пользователь уже вошел в систему? Могу ли я проверить переменную сеанса в нефрите? Что-то вроде ниже для menu.jade
?
if (req.session.name != null)
a(href='/logout') Logout
else
a(href='/login') Login
Благодаря
Я считаю, что вам также нужно выставлять app.locals как locals при визуализации представления. (node.js и express в основном избегают «магии») –
Моя реализация действительно немного испорчена. Вместо app.locals = {}; это должно быть app.locals ({}); (как указано в документах expressJS) –
'app.locals' - это широкоэкранное приложение, вы не должны использовать его для хранения динамических данных, таких как' req.user' (потому что другие запросы могут перезаписать его). Вместо этого используйте ['res.locals'] (http://expressjs.com/api.html#res.locals). – robertklep