使用以下代码,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.sesion会“消失”???