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();
};

Express4のルーターに取り付けました

/// 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');
});

しかし、他のルーターにもそれらを要求する (含める) 必要があるため、快適ではありません。

それが私の失敗なのか、それともバグなのかわかりません。バグの場合は、他のルーターにも同じミドルウェアを含める方法を教えてください。ありがとう

4

0 に答える 0