通过 Heroku 部署时,本地 MongoDB 将无法连接

Posted

技术标签:

【中文标题】通过 Heroku 部署时,本地 MongoDB 将无法连接【英文标题】:MongoDB local won't connect when deploying via Heroku 【发布时间】:2021-08-13 03:38:10 【问题描述】:

其中一个错误日志是这样的: MongooseServerSelectionError:连接 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)

【问题讨论】:

【参考方案1】:

是的,您必须需要像 Atlas 这样的云基础 mongodb 集群,并将云基础 mongodb URI 添加到您的 heroku env 变量中才能运行您的应用程序而不会出现任何错误。

【讨论】:

以上是关于通过 Heroku 部署时,本地 MongoDB 将无法连接的主要内容,如果未能解决你的问题,请参考以下文章

使用 Multer 将图像上传到 mongoDB 时 Heroku 出错

为啥当我的 heroku 应用程序崩溃时出现 mongodb 错误? (在本地工作就好了!)

部署 mongodb 和 express 项目时出错

MongoDB 和 Heroku 部署

Prisma 1 + MongoDB Atlas 部署到 Heroku 返回错误 404

应用程序在本地连接到mongo,但是在heroku上部署时似乎会话创建失败