我在快递中使用redisStore。
如果我这样做,用户会话数据可以在sess:eI6Jnj0gzMkdEvszUciqbcJ9
之类的地方使用: -
redisClient.set('sess:eI6Jnj0gzMkdEvszUciqbcJ9', 'something', function(err){
console.log(err || ' session changed');
});
'会话已更改'实际上在控制台上打印。但sess:eI6Jnj0gzMkdEvszUciqbcJ9
未在数据库中更新。我假设,express不允许redisClient.set
更改会话数据。我怎么能实现它?
PS。一旦我在heroku上使用redistogo,这个更改就可以在我的localhost上运行但不起作用。
编辑: -
我在控制台上通过runnign get'sess:eI6Jnj0gzMkdEvszUciqbcJ9'命令检查密钥没有更新。我正在使用redis.createClient
var redisClient = require('redis').createClient( 3374, 'birdeye.redistogo.com', {detect_buffers: true});
redisClient.auth('052cb8c4142g202f7878588dd5fb129', function() {
console.log('Redis client connected');
});
我只是猜测express.js可能是'自动更新会话可能,它只是用req.session覆盖你所有的变化。'