0

重複の可能性:
セッション ストアに Express / Redis を使用する場合、「セッション」は未定義です

var express = require('express');
var app = express();
var RedisStore = require('connect-redis')(express);
var session = require('redis-session')({

  debug: true,
  ttl: 90000000,
  connection: {port: '7170', host: '127.0.0.1'}    

});

app.configure(function(){

   app.use(express.bodyParser());
   app.set('views',__dirname + '/views');
   app.set('view engine', 'ejs');
   app.use(express.static(__dirname + '/public'));
   app.use(express.session({ secret: 'p!550ff', store: new RedisStore }));
   app.use(express.cookieParser());
   app.use(app.router);

});

この構成では、 を呼び出すたびにreq.session、nodemon は未定義であると通知します。express.cookieParser()よく宣言されてexpress.sessionいると思います。解決策はありますか...?

4

1 に答える 1

3

ミドルウェアはミドルウェアのcookieParser前に来る必要がsessionあるため、次のように順序を入れ替えます。

   app.use(express.cookieParser());
   app.use(express.session({ secret: 'p!550ff', store: new RedisStore }));

これに関する Connect ドキュメントを参照してください

于 2012-12-22T15:09:25.020 に答える