我有这段代码在Node.js文件中加载admin
页面。
app.get('/admin',function(req,res){
if(req.session.loggedIn == undefined)
{
res.writeHead(301, {
Location: '/login'
});
res.end();
}
else
{
res.send("ADMIN PAGE");
}
});
我将有几个页面像这样路由,如果用户登录,我会检查会话。如果没有,我将重定向到登录页面,如果用户已登录,我会显示该页面。
我可以将一些限制添加到所有页面(当然除了登录页面),而不重复代码,以避免在将来更改所有路由时,我必须添加新的限制吗?
也许我可以正确使用正则表达式?但是,我如何决定在每条规则中做什么?
答案 0 :(得分:1)
只需创建一个中间件功能,并将其包含在您需要的任何位置。例如:
function requireLoggedIn(req, res, next) {
if (!req.session || req.session.loggedIn === undefined) {
res.writeHead(301, { 'Location': '/login' });
res.end();
return;
}
next();
}
然后只在路线的任何地方使用它,例如:
app.get('/admin', requireLoggedIn, function(req, res) {
res.send('ADMIN PAGE');
});
或者您可以在单独的路由器中使用它,将其传递给app.use()
等