我有一个 Express 应用程序:
var site = new express();
然后我将管理部分设为子应用程序:
var admin = new express();
admin.get("/users", function(req, res) {...});
最后,我使用权限检查中间件将管理应用程序安装到主站点:
var isAdmin = function(req, res, next) {
if (!req.user.admin) {
return res.send("403");
}
next();
};
site.use("/admin", isAdmin, admin);
问题是:当我打开/admin/users
页面时,next()
权限检查中的调用最终导致 404。我觉得它调用了站点中的下一个回调函数,而不是进入admin。
如果我删除权限检查中间件,就这样写:
site.use("/admin", admin);
然后/admin/users
就可以正常访问了。当然没有任何ACL...
问题是如何使代码进入中间件链中的管理子应用程序?