我写了一个重定向没有授权用户的函数
module.exports = function(req, res, next) {
if (!req.session.authUser) {
// if AJAX request
if(req.xhr)
helpers.send_failure(not_authorized());
else
res.redirect('/');
return;
}
else
next();
};
并将其附加到表达4的路由器
/// included all necessary modules: express, redirectNotAuthorized etc..
var authRouter = express.Router();
authRouter.use(redirectNotAuthorized());
app.use('/', authRouter);
但是得到了一个错误,req是未定义的。甚至试图自己传递论据:
authRouter.use(redirectNotAuthorized(req, res, next));
但收到错误req
未定义
然后我尝试在此(路由器)模块中编写redirectNotAuthorized
函数,但出现错误Router.use() requires middlewarefunctions
如果我在Express的指南中这样做,它可以工作:
router.use(function(req, res, next) {
res.send('Hello World');
});
但它不舒服,因为我也需要(包括)它们在其他路由器中。
不知道这是我的愚蠢,还是一个错误。如果它是一个bug,请问我如何在其他路由器中包含相同的中间件。感谢