我正在学习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));
当我运行它nodemon app
时,我得到这个错误:
错误代码:查询服务器ENOTFOUND _mongodb._tcp.mydb.fzofb.mongodb.net,位于查询请求 Package 。onresolve [作为oncomplete](节点:dns:206:19){错误编号:未定义,代码:'未找到',系统调用:'查询服务',
主机名:'_mongodb._tcp.mydb.fzofb.mongodb.net' }
9条答案
按热度按时间ghhkc1vu1#
另外,如果你的mongodb Atlas集群在一段时间后处于非活动状态,它可能会暂停,然后当你运行服务器时,它会返回你所遇到的错误。
所以另一个赌注是登录到您的Atlas帐户,并确认它是否还没有被暂停。嗯,我的这个选项应该只考虑在尝试了上述选项。
mhd8tkvw2#
该错误表示代码中没有错误。这就给您留下了三种可能的情况:
1.确保您的计算机上有MongoDB installed。
1.请确保您连接到非公共WiFi。
1.确保您已经允许MongoDB的IP网络访问,如下图所示:
在我的例子中,我在一个共同工作的空间连接到公共WiFi。我改变了我的连接到我的个人热点,它工作了。
disho6za3#
需要将连接字符串密码中特殊字符转换为百分比编码
我在mongodb-compass上也遇到了同样的问题。对我来说,这是不正确的连接字符串格式。所以在我的情况下,它需要将我的密码中的
@
符号转换为%40
(百分比编码)。你可以在这里和这里读到更多关于这个的信息。
tpxzln5u4#
尝试禁用VPN(如果已启用)。它对我有帮助。
gajydyqb5#
我遇到了同样的问题。我使用的是最新的
srv
字符串。我不知道这是否会帮助你。但使用旧的n3schb8v6#
如果您试图访问数据库的IP地址不在IP访问列表中,就会发生此错误。请转到MongoDB登录,在安全性下单击网络访问,然后检查您的IP是否已添加到其中。
yzuktlbb7#
在我的例子中,当我登录到我的MongoDB atlas帐户时,问题得到了解决。
biswetbf8#
在我的例子中,我重用了另一个项目中的字符串连接,我从MongoDB站点复制了我原来的字符串连接,并且运行良好。
qij5mzcb9#
修复::以前我的集群密码是“chaudhary@786”,其中包含特殊字符“@",由于这连接编译器的指南针字符串变得混乱,因此在下一轮我改变了我的密码“gghjkl 98”,即没有任何特殊字符。
解决方案:群集的密码不应包含\反斜杠或@等字符或任何其他字符