错误:getaddrinfo ENOTFOUND 与 Heroku Redis 和 Node

问题描述

我有一个 Node/Express API,用于在 Redis 中存储一些信息。

这是我的设置并且在本地工作正常:

const redisClient = redis.createClient({
  host: process.env.REdis_URL ? process.env.REdis_URL : '127.0.0.1',});

我将 API 部署到 heroku 并添加 Heroku Redis,这添加了环境变量: REdis_TLS_URL=rediss://:longhash@ec2-52-54-139-57.compute-1.amazonaws.com:12560

REdis_URL=redis://:longhash@ec2-52-54-139-57.compute-1.amazonaws.com:12559

但是当 Heroku 中的 API 以这个错误启动时,应用程序崩溃了:

2021-05-03T04:13:48.395173+00:00 app[web.1]: > node server.js
2021-05-03T04:13:48.395173+00:00 app[web.1]: 
2021-05-03T04:13:48.945997+00:00 app[web.1]: App is running in port: 56942
2021-05-03T04:13:48.954326+00:00 app[web.1]: events.js:292
2021-05-03T04:13:48.954328+00:00 app[web.1]:       throw er; // Unhandled 'error' event
2021-05-03T04:13:48.954329+00:00 app[web.1]:       ^
2021-05-03T04:13:48.954329+00:00 app[web.1]: 
2021-05-03T04:13:48.954333+00:00 app[web.1]: Error: getaddrinfo ENOTFOUND redis://:longhash@ec2-52-54-139-57.compute-1.amazonaws.com:12559
2021-05-03T04:13:48.954335+00:00 app[web.1]:     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26)
2021-05-03T04:13:48.954336+00:00 app[web.1]: Emitted 'error' event on RedisClient instance at:
2021-05-03T04:13:48.954337+00:00 app[web.1]:     at RedisClient.on_error (/app/node_modules/redis/index.js:342:14)
2021-05-03T04:13:48.954337+00:00 app[web.1]:     at Socket.<anonymous> (/app/node_modules/redis/index.js:223:14)
2021-05-03T04:13:48.954338+00:00 app[web.1]:     at Socket.emit (events.js:315:20)
2021-05-03T04:13:48.954338+00:00 app[web.1]:     at emitErrorNT (internal/streams/destroy.js:106:8)
2021-05-03T04:13:48.954338+00:00 app[web.1]:     at emitErrorCloseNT (internal/streams/destroy.js:74:3)
2021-05-03T04:13:48.954339+00:00 app[web.1]:     at processticksAndRejections (internal/process/task_queues.js:80:21) {
2021-05-03T04:13:48.954340+00:00 app[web.1]:   errno: -3008,2021-05-03T04:13:48.954341+00:00 app[web.1]:   code: 'ENOTFOUND',2021-05-03T04:13:48.954341+00:00 app[web.1]:   syscall: 'getaddrinfo',2021-05-03T04:13:48.954342+00:00 app[web.1]:   hostname: 'redis://:longhash@ec2-52-54-139-57.compute-1.amazonaws.com:12559'

我不明白。错误中的 REdis_URL 似乎是正确的。为什么会崩溃?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)