错误:querySrv ENOTFOUND _mongodb._tcp.dbname.fzofb.mongodb.net

Cha*_*lha 3 javascript mongoose mongodb node.js express

我正在学习 Node.js,刚刚开始使用 MongoDB。

我正在与我创建的 MongoDB 集群建立连接

const dbURI = 'mongodb+srv://testuser:test1234@nodelearning.fzofb.mongodb.net/mydb?retryWrites=true&w=majority';
mongoose.connect(dbURI, { useNewUrlParser: true, useUnifiedTopology: true })
    .then((result) => console.log('connected to db'))
    .catch((err) => console.log(err));
Run Code Online (Sandbox Code Playgroud)

当我运行它时,nodemon app我收到此错误:

错误:querySrv ENOTFOUND _mongodb._tcp.mydb.fzofb.mongodb.net at QueryReqWrap.onresolve [as oncomplete] (node:dns:206:19) { errno: 未定义,代码:'ENOTFOUND',系统调用:'querySrv',
主机名: '_mongodb._tcp.mydb.fzofb.mongodb.net' }

小智 12

另外,如果您的 mongodb Atlas 集群在一段时间后处于非活动状态。它可能会暂停,然后当您运行服务器时它会返回您遇到的错误。

因此,另一个办法是登录您的 Atlas 帐户并确认它是否尚未暂停。那么我的这个选项只有在尝试了上面的选项之后才应该考虑。


Cha*_*lha 5

该错误表明代码中没有错误。这给你留下了三种潜在的可能性:

  1. 确保您的计算机上安装了 MongoDB
  2. 确保您连接到非公共 WiFi。
  3. 确保您已允许 MongoDB 网络中的 IP 访问,如下图所示:

在此输入图像描述

就我而言,我连接到了联合办公空间的公共 WiFi。我更改了与个人热点的连接并且成功了。