Reputation: 1093
I am developing Node.js application with express. I am checking session in every route. But I want to separate this checking from my routes. Need idea.
Here is my route:
app.get('/Management', function(req, res) {
if (!req.session.email) {
return res.render(__dirname + "../../../views/management/accessdenied.jade", {
title: 'dont have access',
stylesheet: 'accessdenied',
error: 'forbidden'
});
}
return res.render(__dirname + "/views/index", {
title: 'Management',
stylesheet: 'managementindex'
});
});
And here is my session check:
if (!req.session.email) {
return res.render(__dirname + "../../../views/management/accessdenied.jade", {
title: 'dont have access',
stylesheet: 'accessdenied',
error: 'forbidden'
});
}
Upvotes: 0
Views: 96
Reputation: 1611
Make your own middleware. This will respond to all get & post requests. You will want it at the bottom of all your other 'app.use()' calls (bodyParse, cookieParser, etc)
app.use(function(req, res, next) {
if (!req.session.email) {
res.render(__dirname + "../../../views/management/accessdenied.jade", {
title: 'dont have access',
stylesheet: 'accessdenied',
error: 'forbidden'
});
} else {
next();
}
});
Upvotes: 2