javascript - Node.js - How can I use my local variable with EJS view -
i try used local variable on ejs. it's varaiable check if user connected. -> last post on link: how know if user logged in passport.js?
so,
app.js
app.use(function (req, res, next) { res.locals.login = req.isauthenticated(); next(); });
view ejs
<% if (login) { %> <div id="submenuuser"> <div class="btn-group"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"> </span>menu<span class="caret"></span> </button> <ul class="dropdown-menu pull-right" role="menu"> <li><a href="#" role="menuitem">menu item 1</a></li> <li><a href="#" role="menuitem">menu item 2</a></li> <li><a href="#" role="menuitem">menu item 3</a></li> </ul> </div> </div> <% } %>
i error:
login not defined
i use variable view.. possible ?
before method, sent each time variable in render that:
res.render('ad/index', { login: req.session.user });
make sure declaring middleware function sets res.locals.login before declare app.router. ensures route rendering template not render template before middleware can set res.locals.login. along lines of:
app.use(function (req, res, next) { res.locals.login = req.isauthenticated(); next(); }); app.configure(function(){ ... app.use(app.router); ... });
it appears others have asked similar question, other templating engines: accessing res.locals backbone.router templates
Comments
Post a Comment