连接到MongoDB Atlas群集错误

时间:2018-12-29 18:43:24

标签: mongodb mongoose mongodb-atlas

我面临通过Node.js,express和mongoose连接到我的MongoDB Atlas集群的问题:

{ MongoNetworkError: connection 4 to mongodb-passport-auth-shard-00-00-vp7yg.mongodb.net:27017 closed
    at TLSSocket.<anonymous> (C:\Users\Vishesh\Documents\Projects\nodejs-passport-auth\node_modules\mongodb-core\lib\connection\connection.js:276:9)
    at Object.onceWrapper (events.js:273:13)
    at TLSSocket.emit (events.js:187:15)
    at _handle.close (net.js:606:12)
    at TCP.done (_tls_wrap.js:386:7)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }

这是我用于通过短SRV连接字符串连接到群集的代码:

mongoose
  .connect(
    'mongodb+srv://myname:mypwd@myapp-vp7yg.mongodb.net/test?retryWrites=true',
    { useNewUrlParser: true }
  )
  .then(() => console.log("Connected to mongodb..."))
  .catch(err => console.log(err));

5 个答案:

答案 0 :(得分:1)

我认为您必须将IP地址添加到mongoDB.atlas控制台的 IP白名单中。

mongoDB.atlass console

答案 1 :(得分:1)

我遇到了同样的错误,这是解决此问题的解决方案。 在IP白名单中添加您的IP。

希望这个帮助。

enter image description here

答案 2 :(得分:1)

我遇到了错误

MongoNetworkError: connection 1 to ......-shard-00-00.b2zap.mongodb.net:27017 closed

即使我添加了允许从 IP 白名单中的任何位置访问。

添加我的 IP 地址并允许从任何地方访问后,它对我有用。

答案 3 :(得分:0)

更新您的mongoose.connect方法以避免过时警告

mongoose.connect(
  mongoAtlasUri,
  {
    useNewUrlParser: true,
    useCreateIndex: true,
    useUnifiedTopology: true,
    useFindAndModify: false,
  },
  () => console.log(" Mongoose is connected")
);

如果您不知道自己的IP地址,也可以使用此IP地址-0.0.0.0/0,但建议您使用自己的IP地址。

enter image description here

答案 4 :(得分:0)

我最近遇到了这个问题,这是 altas 方面的某种错误。 即使你已经允许了所有有一个图集的 IP,它仍然会抛出同样的错误。

通过添加您的位置 IP 来修复它的方法。你有一个专门的白名单你自己的 IP 这有点奇怪,你已经允许了所有。

这对我有用,我希望这也能帮助其他人。