我写了一个重定向没有授权用户的函数
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();
};
并附在express 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。如果这是一个错误,请如何在其他路由器中包含相同的中间件。谢谢