0

我写了一个重定向没有授权用户的函数

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。如果这是一个错误,请如何在其他路由器中包含相同的中间件。谢谢

4

0 回答 0