2017-02-17 777 views
0

当我检查我的redis服务器状态时,它表示redis服务器正在运行,但当我登录时出现此错误 RedisClient .on('error',function(err){console.log('Redis error:'+ err); // Redis error:Error:Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379 }); 当我尝试控制req.session时,它返回undefined。关于这个问题的任何线索? 请帮我我是新来的这个。谢谢Redis错误:错误:Redis连接到127.0.0.1:6379失败 - 连接ECONNREFUSED 127.0.0.1:6379

继承人我的设置:

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

你在redisStore选项相互排斥提供的参数一起。您要么通过主机和端口,要么通过现有的redis客户端。

报价connect-redis文档 -

A Redis client is required. An existing client can be passed directly using the client param or created for you using the host, port, or socket params

另外还有我在这个片段中已纠正了一些引用错误。

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"); 
}); 
+0

嗨,谢谢。我试过你提供的代码,但仍然遇到同样的问题:( – fyeah

+0

当我通过redis-cli ping检查redis服务器时,它显示: 无法连接到Redis 127.0.0.1:6379:连接拒绝 – fyeah

+0

Hi @fyeah ,你能告诉我你的操作系统环境,所以我可以进一步帮助你 –

相关问题