I want to make user details (ex: username) appear in my nav bar, and for that I have have been sending the 'req.session.user' variable to my views.
What I've been doing is, for every view render, I send the req.session variable like so:
app.get('/index', function(req, res, next) {
if(req.session.user) {
res.render("index", {user:req.session.user});
}
});
And then in my backbone view, where my navbar is located, I print out the username.
What are the best practices to overcome this repetitive achievement? I've searched, but had no results.
Thank you.
If you do not want to send req.session.user
to each page like this: {user:req.session.user}
you can add this data to res.locals object:
app.use(function(req, res, next) {
res.locals.user = req.session.user
next()
})
Thus, on each page you can output user name like this (example with ejs):
<% if (user) { %>
<h1>Hello, <%= user.name %></h1>
<% } %>