当我检查我的redis-server状态时,它表示redis服务器正在运行,但是当我登录时出现此错误 RedisClient.on('error',function(err){ console.log('Redis错误:'+错误); // Redis错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED 127.0.0.1:6379 }); 当我尝试控制req.session时,它返回undefined。关于这个问题的任何线索? 请帮助我,我是新手。谢谢
继承我的设置:
var express = require('express');
var redis = require("redis");
var session = require('express-session');
var redisStore = require('connect-redis')(session);
var parser = require('body-parser');
var RedisClient= redis.createClient();
app.use(session({
secret: 'myseceret',
store: new redisStore({host: '127.0.0.1', port: 6379, client: client,ttl : 260}),
saveUninitialized: false,
resave: false,
cookie: { secure: true }
}));
client.on('error', function(err) {
console.log('Redis error: ' + err);
});
答案 0 :(得分:1)
您在redisStore的选项中一起提供了互斥参数。您可以传递主机和端口,也可以只传递现有的redis客户端。
引用connect-redis文档 -
需要Redis客户端。可以使用客户端参数直接传递现有客户端,也可以使用主机,端口或套接字参数为您创建
此外,还有一些参考错误,我已在此代码段中进行了更正。
var express = require('express');
var redis = require("redis");
var session = require('express-session');
var redisStore = require('connect-redis')(session);
var parser = require('body-parser');
var RedisClient= redis.createClient();
var app = express();
app.use(session({
secret: 'mysecret',
store: new redisStore({client: RedisClient,ttl : 260}),
saveUninitialized: false,
resave: false,
cookie: { secure: true }
}));
RedisClient.on('error', function(err) {
console.log('Redis error: ' + err);
});
RedisClient.on("ready",function () {
console.log("Redis is ready");
});