node.js - 错误:Redis 连接到 127.0.0.1:6379 失败 - 连接 ECONNREFUSED 127.0.0.1:6379 Heroku
问题描述
我创建了一个使用 Redis 的 Nodejs 服务器。当我在我的机器上运行它时它运行良好。但是当我尝试将代码推送到heroku时出现上述错误。我已经安装了 Redis togo,我可以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
:
错误:与 127.0.0.1:6379 的 Redis 连接失败 - 连接 ECONNREFUSED 127.0.0.1:6379
解决方案
您收到该错误是因为您首先尝试使用redis.createClient()
. 默认情况下,它将连接到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()
}
推荐阅读
- java - 从对象 ArrayList 中删除对象
- tensorflow - Keras中自动编码器(图像重建)模型的准确性
- python - jinja2.exceptions.TemplateNotFound Heroku 找不到模板
- bit-manipulation - OCaml 中的高效 8 位和 16 位计算
- python - 用户数据的视图和 HTTP 响应 - Django
- python - 当 pandas 数据框中不同列之间满足条件时显示带有指示符/标志的列(不合并)
- java - 如何使用 gradle 在 netbeans 中构建新的项目结构?
- java - 没有选中项时如何完成 ActionMode?
- python - 有没有办法使用 pyplot 和 pandas 绘制在 Python 中只有特定值的所有列?
- sql - 查询列表中的 JSON 对象 (Postgres 11)