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

问题描述 投票:0回答:1

我使用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,但是找不到帮助我的东西。该帖子中的大多数问题都在本地计算机上。

请帮助我。

node.js mongodb azure
1个回答
1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.