-1

在我的node.js代码中,我有很多路由器和身份验证需要管理,例如:

app.get('/', fn);
app.get('/admin', checkAccess, fn);
app.get('/blog', checkAccess, fn);

可能是路由器数量可能是几十个或更多,

我怎样才能更好地管理它们?

有管理模块吗?或类似的东西?

4

1 回答 1

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));
于 2013-01-09T07:41:55.543 回答