微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误:getaddrinfo ENOTFOUND 与 Heroku Redis 和 Node

如何解决错误: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 举报,一经查实,本站将立刻删除。