node.js - 通过 Heroku 部署时,本地 MongoDB 将无法连接
问题描述
错误日志之一是: MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
我在 Node.js 中使用的 dbURI:
const dbURI = process.env.MONGODB_URI || 'mongodb://localhost:27017/the-little-helper';
我的问题是,我需要使用云服务器(即 MongoDB Atlas)来部署我的 Web 应用程序还是可以使用本地服务器来存储数据库?
注意:Heroku 是我目前用来部署的,请随时为其他类似 heroku 的站点留下建议。
此外,如果前面的语句没有足够的信息,这里是所有错误的日志:
2021-05-24T19:04:50.910961+00:00 heroku[web.1]: Starting process with command `npm start`
2021-05-24T19:04:54.247315+00:00 app[web.1]:
2021-05-24T19:04:54.247332+00:00 app[web.1]: > profile@1.0.0 start /app
2021-05-24T19:04:54.247332+00:00 app[web.1]: > node Node.js
2021-05-24T19:04:54.247333+00:00 app[web.1]:
2021-05-24T19:04:54.947931+00:00 app[web.1]: Connection success!
2021-05-24T19:04:54.954409+00:00 app[web.1]: Warning: connect.session() MemoryStore is not
2021-05-24T19:04:54.954411+00:00 app[web.1]: designed for a production environment, as it will leak
2021-05-24T19:04:54.954411+00:00 app[web.1]: memory, and will not scale past a single process.
2021-05-24T19:05:24.952175+00:00 app[web.1]: MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017
2021-05-24T19:05:24.952186+00:00 app[web.1]: at NativeConnection.Connection.openUri (/app/node_modules/mongoose/lib/connection.js:846:32)
2021-05-24T19:05:24.952186+00:00 app[web.1]: at /app/node_modules/mongoose/lib/index.js:350:10
2021-05-24T19:05:24.952187+00:00 app[web.1]: at /app/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5
2021-05-24T19:05:24.952187+00:00 app[web.1]: at new Promise (<anonymous>)
2021-05-24T19:05:24.952188+00:00 app[web.1]: at promiseOrCallback (/app/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10)
2021-05-24T19:05:24.952188+00:00 app[web.1]: at Mongoose._promiseOrCallback (/app/node_modules/mongoose/lib/index.js:1154:10)
2021-05-24T19:05:24.952189+00:00 app[web.1]: at Mongoose.connect (/app/node_modules/mongoose/lib/index.js:349:20)
2021-05-24T19:05:24.952189+00:00 app[web.1]: at Object.<anonymous> (/app/Node.js:17:10)
解决方案
是的,您必须需要像 Atlas 这样的云基础 mongodb 集群,并将云基础 mongodb URI 添加到您的 heroku env 变量中才能运行您的应用程序而不会出现任何错误。
推荐阅读
- javascript - 在 datepicker 中选择日期后,在我的年龄字段中获取 NaN
- angular - 模板解析错误:意外字符“EOF”
- python - Cesium - ImportError:无法导入名称重新提升
- php - 在命令窗口中为 Aria 项目使用 curl 我得到了我想要的但在 PHP 文件中它返回空字符串
- amazon-web-services - 如果我将弹性 IP 关联到我正在运行的 EC2 实例,它是否会丢弃其当前的公共 IP?
- c - 由于新添加项目的链接器错误,构建解决方案失败
- latex - 如何将粗体或标题格式应用于内部带有 LaTeX 表达式的句子?
- java - 如何过滤只有 3 个字符串长度的 Map 中的键?
- reactjs - 如何使用 jest 和酶为函数编写测试用例
- dart - 如何映射地图?