部署到Azure的Express.js应用程序将无法连接到云中的mongoDB

时间:2019-11-28 14:02:42

标签: node.js mongodb azure

我使用Visual Studio Azure扩展部署了快速的REST API。它仅由提供JSON数据的终结点组成。我有几个只能服务的端点和错误消息,它们工作正常,所以快速应用程序正常运行,但是当我到达需要从MongoDB中读取的端点时,在Visual Studio中,它提示流日志中这个:

错误:

(node:68) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [cluster0-shard-00-02-cia4k.mongodb.net:27017] on first connect [MongoNetworkError: connection 4 to cluster0-shard-00-02-cia4k.mongodb.net:27017 closed

因此,您可以看到它说连接有问题,在这种情况下,我不知道failed to connect to the server, "connection 4"是什么意思。

我正在尝试将快速应用程序连接到云中的MongoDB。我正在使用MongoDB Compass可视化数据,并且连接没有问题。这些都是我确定正确的事情。

  • MongoDB中的网络访问:Azure IP已在MongoDB中注册(我在azure的“自定义域”选项卡中找到了它)。
  • Node.js具有正确的Mongo地址:mongodb+srv://<MyUsername>:<MyPassword>@cluster0-cia4k.mongodb.net/<DatabaseName>
  • 我将此作为参数添加到mongo地址 mongodb + srv:// ... ?authSource=admin的末尾。
  • 我不尝试在Azure的VM中访问本地MongoDB。

我已经看过这个StackOverflow thread,但是找不到帮助我的东西。该帖子中的大多数问题都在本地计算机上。

请帮助我。

1 个答案:

答案 0 :(得分:1)

我已经找到了解决方案,所以我做的其中一个步骤没错,但是需要额外的设置。基本上问题是这样的:

  

MongoDB中的网络访问:Azure IP已在MongoDB中注册(我在azure的“自定义域”选项卡中找到了它)。

事实证明,Microsoft Azure具有多个出站IP地址。您可以在(设置>属性)>出站IP地址下找到它们。将它们全部放在MongoDB Atlas中,这解决了我的问题。