Node.js エクスプレス セッションは、次のコードで完全に機能します。
var express = require("express");
var app = express();
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
cookie: {maxAge: pembapp.dayInMilliseconds * 180},
secret: 'mysecret',
key: 'mykey'
}));
問題なく req.session.whatever にアクセスできます。
サーバーの再起動が必要な場合に備えて、セッション データを保存するために redis を使用したいので、コードは次のようになります。
var express = require("express");
var app = express();
var RedisStore = require('connect-redis')(express);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
cookie: {maxAge: pembapp.dayInMilliseconds * 180},
secret: 'mysecret',
key: 'mykey',
store: new RedisStore({
host: 'localhost',
port: 6379,
db: 2,
prefix: 'myprefix',
pass: 'mypasswd'
})
}));
redis コードを追加すると、req.session が未定義になりました! 私の人生でこれを理解することはできません。セッションの redis ストアを追加すると、req.session が「消える」のはなぜですか?