无法连接到数据库 Heroku nestjs mongoose

Top*_*psy 0 timeout mongoose mongodb node.js nestjs

我正在尝试将我的 nestjs 项目部署到 heroku。但是我在连接到 mongoDB 时一直有超时错误

2020-03-08T21:53:43.192716+00:00 app[web.1]: [31m[Nest] 54   - 
[39m03/08/2020, 9:53:43 PM   [38;5;3m[MongooseModule] [39m[31mUnable to connect to the database. 
Retrying (1)...[39m[38;5;3m +30084ms[39m
2020-03-08T21:53:53.398546+00:00 heroku[web.1]: State changed from starting to crashed
2020-03-08T21:53:53.308228+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Run Code Online (Sandbox Code Playgroud)

奇怪的是它是 mongodb atlas 集群(在云上),当我尝试从我的机​​器上访问它时,一切都很好......

这是一个看起来像这样的网址: mongodb+srv://myDbUserName:myPassword@cluster0-opbo3.gcp.mongodb.net/test?retryWrites=true&w=majority

我试图MongooseModule 像这样直接传递uri, 这MongooseModule.forRoot(CONFIG.MONGODB_URI)在我的机器上再次起作用......但不是heroku......

我还尝试在 heroku 中添加 MONGODB_URI 作为 env 变量并使用它:process.env.MONGODB_URI但没有运气。

我错过了什么?

如果您有任何想法!谢谢你们 !

Top*_*psy 5

我终于设法找出问题所在。

在 mongo Atlas 界面中,只有我的语言环境机器 ip 被列入白名单。

我现在已经将集群打开到任何 ip。它奏效了。