Expressアプリでexpress.session()を使用しているので、認証ユーザー用のミドルウェアを作成してから'/'に送信します。コードは次のとおりです。
var express = require('express');
app.configure(function(){
app.use(express.cookieParser('keyboard cat'));
app.use(express.session( {secret : "my secret"}));
app.use(app.router);
});
var accessChecker= function(req,res,next){
if (req.session.user.name && req.session.auth){
next();
}else{
res.redirect('/login');
}
}
app.get('/',accessChecker(), routes.index);
このコードを実行すると、次のメッセージが表示されます。
if (req.session.user.name && req.session.auth){
^
TypeError: Cannot read property 'session' of undefined
app.configureの前 にaccessChecker関数を配置し、 acessChecker関数内でexpress.cookieParser ()とexpress.session( ) を使用しようとしましたが、常に同じメッセージが表示されます。