gpt4 book ai didi

node.js - 部署到 azure 的 Express.js 应用程序无法连接到云中的 mongoDB

转载 作者:行者123 更新时间:2023-12-03 02:45:21 25 4
gpt4 key购买 nike

我使用 Visual Studio Azure 扩展部署了快速 REST API。它仅包含提供 JSON 数据的端点。我有几个端点,它只提供服务和错误消息,这些端点工作得很好,所以 Express 应用程序工作正常,但是当我到达需要从 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"在这种情况下意味着。

我正在尝试将 Express 应用程序连接到云中的 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 虚拟机中的本地 MongoDB。

我已经看过这个 StackOverflow thread但我找不到对我有帮助的东西。该帖子中的大多数问题都出现在他们的计算机本地。

请帮助我。

最佳答案

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

Network Access in MongoDB: Azure IP is registered in MongoDB (I found it in the "Custom Domain" tab in azure).

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

关于node.js - 部署到 azure 的 Express.js 应用程序无法连接到云中的 mongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59090626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com