我创建了一个使用Redis的Nodejs服务器。当我在机器上运行它时,它运行良好。但是,当我尝试将代码推送到heroku时,出现了以上错误。我已经安装了Redis togo,并且可以在config变量中看到REDISTOGO_URL
。
在我做了一些Stackoverflow帖子之后:
let RedisStore = require('connect-redis')(session)
let redisClient = redis.createClient()
if(process.env.REDISCLOUD_URL){
let redisURL = url.parse(process.env.REDISCLOUD_URL);
redisClient = redis.createClient(redisURL)
}
我的应用程序在开发中运行良好,但是当我尝试在heroku中启动我的应用程序时,执行
heroku logs --tail
时出现以下错误:最佳答案
出现该错误是因为您首先尝试使用redis.createClient()
创建redis客户端。默认情况下,它将连接到127.0.0.1:6379
。
它在localhost上可以正常工作,因为它不会进入if (process.env.REDISCLOUD_URL
且本地redis可用。
要解决此问题,
let redisClient
if(process.env.REDISCLOUD_URL){
let redisURL = url.parse(process.env.REDISCLOUD_URL);
redisClient = redis.createClient(redisURL)
} else {
redisClient = redis.createClient()
}
关于node.js - 错误:Redis与127.0.0.1:6379的连接失败-连接ECONNREFUSED 127.0.0.1:6379 Heroku,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61743443/