MongoDB 连接错误 getaddrinfo ENOTFOUND Cluster0_shard_name

Mik*_*e K 2 mongoose mongodb node.js

我在尝试连接 MongoDB 时遇到问题。我这里用的是猫鼬

console.log("trying here"); // prints

await mongoose.connect(db, {
  useNewUrlParser: true,
  useCreateIndex: true,
  useFindAndModify: false
});

console.log("Mongo DB connected"); // never reached
Run Code Online (Sandbox Code Playgroud)

它会抛出一个错误

getaddrinfo ENOTFOUND cluster0-shard-00-01-abcde.mongodb.net
Run Code Online (Sandbox Code Playgroud)

我以前从未遇到过这个错误,它曾经工作得很好——不知道从这里去哪里。我尝试构建一个新的集群,并将 IP 的网络访问设置为 public 0.0.0.0。它只是不断抛出相同的错误。

Roh*_*bre 5

我面临着同样的错误。

你如何使用你的 mongo 连接字符串?你的猫鼬版本是什么?

如果您使用最新版本的猫鼬,请尝试使用下面的字符串

我改变了我的字符串

mongodb://<user>:<password>...
Run Code Online (Sandbox Code Playgroud)

mongodb+srv://<user>:<password>...
Run Code Online (Sandbox Code Playgroud)


Cit*_*ror 5

请注意,如果指定useNewUrlParser: true,则必须在连接字符串中指定端口,例如mongodb://localhost:27017/dbname。新的 url 解析器不支持没有端口的连接字符串,例如mongodb://localhost/dbname.

在这里查看更多信息

如果您使用node.js + mongo Atlas,还有一种选择:

  1. 登录 https://cloud.mongodb.com/
  2. 转到您的 cluster0 或其他集群,
  3. 单击连接...选择连接您的应用程序
  4. 选择node.js,然后选择2.2.12或更高版本 -

您将获得以 mongodb:// 开头的连接字符串

安装 mongodb+srv:// (适用于 Node js 3.0 或更高版本)