Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node.js - Set default local variables to pass into layout/template

I'm using Node.js and Express, and I want to pass a local variable in to the layout on every page, is there any way to do this? I'm using Jade as my templating engine.

The reason I want this is because I want to display the user's username on every page (using session), any way to do this other than including it every time in the local object?

like image 440
Varun Singh Avatar asked Jan 04 '12 11:01

Varun Singh


1 Answers

You can achieve this by defining a dynamic view helper, as pointed out in the official Express guide:

app.dynamicHelpers({
  session: function(req, res){
    return req.session;
  }
});

Then in your views you can simply access the session variable, and for example session.user to display the user.

like image 170
alessioalex Avatar answered Nov 17 '22 18:11

alessioalex