Heroku 没有连接到 Mongo Atlas DB?

Posted

技术标签:

【中文标题】Heroku 没有连接到 Mongo Atlas DB?【英文标题】:Heroku Not Connecting to Mongo Atlas DB? 【发布时间】:2019-07-30 18:58:20 【问题描述】:

我的应用无法正确部署或连接到 Heroku 上的 Mongo Atlas DB。它一直在崩溃。 heroku URL 只是说要做日志,所以这里是命令行日志:

这是我的 server.js 文件的样子:

这是我的配置/键的样子:

这是我的 keys_prod.js 文件的样子:

这是我的 keys_dev.js 文件的样子(编辑的用户名和密码),但这也是我在 heroku 后端的配置变量所拥有的

还截取了这张截图,但不确定是否重要:

【问题讨论】:

错误很明显,uri parameter is undefined。你确定你在 Heroku 的 Config Vars 中设置了 MONGO_URI 吗? 这就是问题所在。我已将其设置为 mongoURI,就像它在密钥文件中一样,而不是我声明的 MONGO_URI。谢谢你的帮助!! 【参考方案1】:

我没有正确设置 Heroku 配置变量。我已经将它设置为 mongoURI,就像它在 prod.keys JS 文件夹中一样,而不是像我声明的那样是 MONGO_URI。此外,我必须在 Heroku 的设置中将所有 ip 列入白名单。

【讨论】:

只是好奇,您是否必须为 Atlas 使用 Heroku 配置/附加组件?我正在尝试部署一个类似的应用程序,并想知道我当前的问题是否是由于没有插件造成的。 抱歉,Christy,您刚才没有看到您的评论。不,我不必添加任何额外的配置/附加组件或其他东西来正确部署。就像我说的,我不小心在 Heroku 中声明了我的数据库,这与我在实际应用程序中所做的不同。我做了 mongo_URI,当我尝试将它推送到 Heroku 时,它会失败,因为它无法正确连接。当我在我的实际 prod.keys.js 文件中声明它为 MONGO_URI(全部大写)时。【参考方案2】:

在像 heroku 这样的部署平台中,很难配置 .env 。我通过使用 npm 包 dotenv 在我的项目中解决了这个问题。无论文件需要process.env init,使用这个包

常用的require.js方式:

require('dotenv').config()

它还有一些很酷的选项来管理env

这里是link

【讨论】:

以上是关于Heroku 没有连接到 Mongo Atlas DB?的主要内容,如果未能解决你的问题,请参考以下文章

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

尝试将 Heroku 连接到 Atlas MongoDB 时出现问题

将 Heroku App 连接到 Atlas MongoDB 云服务

将 Heroku App 连接到 Atlas MongoDB 云服务

Heroku部署后Django(djongo)无法连接到MondoDB Atlas

如何将Django ORM连接到mongo atlas?