Hal*_*sey 4 redis node.js express
我目前使用 Express 构建一个网站,想使用 redis 云数据库在会话中保存 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;
Run Code Online (Sandbox Code Playgroud)
应用程序.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
}));
Run Code Online (Sandbox Code Playgroud)
问题是:启动服务器后,我在控制台中收到错误消息,如下所示:
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
...
Run Code Online (Sandbox Code Playgroud)
我使用本指南来设置 Redis 云并分配 dotenv 变量(主机、端口和密码)。我已经调试完毕,dotenv 工作正常,并且主机、端口和密码变量正确。
但问题仍然存在。我仍然收到The client is closeed and connect ECONNREFUSED 127.0.0.1:6379错误,如上面的控制台日志所示。我怎样才能解决这个问题?
小智 9
被困在同样的问题上并找到了一些运气。使用“ioredis”模块而不是无缝工作的redis。
const redis = require('ioredis');
const redisClient = redis.createClient({host:'your host address',port:your port,username:'',password:''});
redisClient.on('connect',() => {
console.log('connected to redis successfully!');
})
redisClient.on('error',(error) => {
console.log('Redis connection error :', error);
})
module.exports = redisClient;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7201 次 |
| 最近记录: |