下面的代码是一个正常的代码片段,但它不工作,请求中的会话是未定义的。任何人谁能给我一个提示,将不胜感激。
var express = require('express');
var session = require('express-session');
var redisStore = require('connect-redis')(session);
var app = express();
app.listen(3000);
app.use(session({
store: new redisStore({
host:'localhost',
port:'8543'
}),
resave: false,
saveUninitialized: true,
secret: 'somesecrettoken'
}));
app.get('/', function (req, res) {
if(req.session.isVisit) {
req.session.isVisit++;
res.send('<p>times to be here:' + req.session.isVisit + '</p>');
} else {
req.session.isVisit = 1;
res.send('1st time to be here');
}
});
发布于 2015-12-18 07:01:58
需要Redis客户端
var redis = require("redis"); // You can use any module to create redis client
app.use(session({
store: new redisStore({
client : redis.createClient(<your setting>)
host:'localhost',
port:'8543'
}),
resave: false,
saveUninitialized: true,
secret: 'somesecrettoken'
}));
发布于 2015-12-18 07:09:39
请参阅此链接:https://www.npmjs.com/package/connect-redis
将express-session存储传递给connect-redis以创建一个RedisStore构造函数。
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
app.use(session({
store: new RedisStore(options),
secret: 'keyboard cat'
}));
https://stackoverflow.com/questions/34349149
复制相似问题