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

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -