【发布时间】:2022-01-20 22:09:21
【问题描述】:
我目前用Express建站,想用redis云数据库保存session中的userID。 redisClient 是在 redisClient.js 中创建的,然后我将它传递给 app.js 中会话中的 redisStore。代码如下:
redisCLient.js
const redis = require("redis");
let redisClient = redis.createClient({
host: process.env.REDIS_HOSTNAME,
port: parseInt(process.env.REDIS_PORT),
password: process.env.REDIS_PASSWORD
});
redisClient.on('error', function(err) {
console.log('*Redis Client Error: ' + err.message);
});
redisClient.on('connect', function(){
console.log('Connected to redis instance');
});
(async () => {
await redisClient.auth(process.env.REDIS_PASSWORD)
.catch(err => {console.log('Redis auth error: ' + err.message)});
await redisClient.connect()
.catch(err => {console.log('Redis connect error: ' + err.message)});
})();
module.exports = redisClient;
app.js
const session = require("express-session");
const redisStore = require('connect-redis')(session);
const redisClient = require('./session-store/redisClient');
...
app.use(cookieParser());
app.use(session({
store: new redisStore({client: redisClient, ttl: 3600 * 24 * 30}),
saveUninitialized: false,
secret: process.env.SESSION_SECRET,
resave: false
}));
问题是:在启动服务器时,我在控制台中收到错误消息,如下所示:
Redis auth error: The client is closed
*Redis Client Error: connect ECONNREFUSED 127.0.0.1:6379
*Redis Client Error: connect ECONNREFUSED 127.0.0.1:6379
*Redis Client Error: connect ECONNREFUSED 127.0.0.1:6379
*Redis Client Error: connect ECONNREFUSED 127.0.0.1:6379
...
我使用这个guide 来设置redis 云并分配dotenv 变量(主机、端口和密码)。我已调试,dotenv 工作正常,主机、端口和密码变量正确。
但问题仍然存在。我仍然收到 客户端已关闭 和 connect ECONNREFUSED 127.0.0.1:6379 错误,如上面的控制台日志中所示。我该如何解决这个问题?
【问题讨论】: