我创建了一个使用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/

10-09 17:02