在我的node.js
代码中,我需要管理很多路由器和身份验证,例如:
app.get('/', fn);
app.get('/admin', checkAccess, fn);
app.get('/blog', checkAccess, fn);
可能是路由器编号为十几个或更多,
如何更好地管理它们?
是否有管理模块?或类似的东西?
答案 0 :(得分:1)
根据您的示例,您可以使用多个回调,或者使用简单的装饰器模式。
多次回调
function checkAccess(req, res) {
// check for access
if (!access) {
res.send(403);
}
}
app.get('/', fn);
app.get('/admin', checkAccess, fn);
app.get('/blog', checkAccess, fn);
简单的装饰图案
function requiresAccess(fn) {
return function (req, res) {
// check for access
if (access) {
fn(req, res);
} else {
res.send(403);
}
}
}
app.get('/', fn);
app.get('/admin', requiresAccess(fn));
app.get('/blog', requiresAccess(fn));