如何使用Redis存储会话和其他数据?
我收到错误“ myRedis错误->错误:Redis与127.0.0.1:6379的连接失败-连接ECONNREFUSED”。如果没有myRedis部分,则express / session / redis可以正常运行。
var express = require('express');
var session = require('express-session');
// pass the express to the connect redis module
// allowing it to inherit from session.Store
var RedisStore = require('connect-redis')(session);
....
// Populates req.session
app.use(session({
resave: false, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'keyboard cat',
store: new RedisStore
}));
// needed for saving new data
var myRedis = require('redis'); // additional redis store
var myRedisCli = myRedis.createClient();
myRedisCli.on('error', function (err) {
console.log('myRedis Error-> ' + err);
});
有没有办法使用connect-redis的redis客户端?但是看起来它与会话紧密绑定。
我找不到有关这种情况的信息。希望有人能帮忙,谢谢!
研究了connect-redis代码后,我终于发现可以将现有的redis-client传递给它。该文档已经提到了这一点,但没有给出示例。
以下代码有效。首先正常创建一个redis客户端,然后将其传递给会话。
var express = require('express');
var session = require('express-session');
var _myRedis = require('redis'); // additional redis store
var myRedisCli = _myRedis.createClient();
// pass the express to the connect redis module
// allowing it to inherit from session.Store
var RedisStore = require('connect-redis')(session);
...
app.use(session({
resave: false, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: SESSION_SECRET,
store: new RedisStore({client: myRedisCli})
}));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句