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 云服务