許可されたユーザーをリダイレクトしない関数を作成しました
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');
});
しかし、他のルーターにもそれらを要求する (含める) 必要があるため、快適ではありません。
それが私の失敗なのか、それともバグなのかわかりません。バグの場合は、他のルーターにも同じミドルウェアを含める方法を教えてください。ありがとう