In my node.js code, I have lot router and authentication to manage, like:
app.get('/', fn);
app.get('/admin', checkAccess, fn);
app.get('/blog', checkAccess, fn);
may be the router number coule be dozen or more,
how can I manage them better?
Is there a manage module? or something like this?
You can use multiple callbacks, as per your example, or a simple decorator pattern.
Multiple callbacks
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);
Simple decorator pattern
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));