Node.js MongoDB:“无法连接到MongoDB Atlas群集中的任何服务器(白名单)”

Node.js MongoDB:“无法连接到MongoDB Atlas群集中的任何服务器(白名单)”,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个问题,我试图解决了很长一段时间。 我正在尝试从nodejs viamongoose连接到Mongo Atlas云。 这不是我第一次,但我就是找不到答案 猫鼬版本:5.9.22 这是我的密码: const express = require('express') const mongoose = require('mongoose') const bodyparser = require('body-parser') const app = expre

我有一个问题,我试图解决了很长一段时间。 我正在尝试从nodejs viamongoose连接到Mongo Atlas云。 这不是我第一次,但我就是找不到答案

猫鼬版本:5.9.22

这是我的密码:

  const express = require('express')
    const mongoose = require('mongoose')
    const bodyparser = require('body-parser')
    
    const app = express()
    app.use(bodyparser.json())
    
  mongoose.connect("mongodb+srv://dudvil1:password@cluster0.guxmm.mongodb.net/shopping_list? 
  retryWrites=true&w=majority", {
      useNewUrlParser: true,
      useUnifiedTopology: true
  })
          useNewUrlParser: true,
          useUnifiedTopology: true
      })
      .then(() => console.log('mongo connected'))
       .catch(err => console.log(err));   
    
    const port = process.env.PORT || 5000   
    
    app.listen(port, () => console.log(`server started in port ${port}`))
我的白名单设置仅包括0.0.0.0/0 我在数据库访问中的用户名和密码非常简单,没有任何特殊字符,但总是出现相同的错误:

 MongooseServerSelectionError: Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/
    at NativeConnection.Connection.openUri (C:\Users\Dudu\Desktop\MERN\node_modules\mongoose\lib\connection.js:826:32)
    at Mongoose.connect (C:\Users\Dudu\Desktop\MERN\node_modules\mongoose\lib\index.js:335:15)
    at Object.<anonymous> (C:\Users\Dudu\Desktop\MERN\server.js:10:10)
    at Module._compile (internal/modules/cjs/loader.js:956:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
    at Module.load (internal/modules/cjs/loader.js:812:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
    at internal/main/run_main_module.js:17:11 {
  message: "Could not connect to any servers in your MongoDB Atlas cluster. One common reason is that you're trying to access the database from an IP that isn't whitelisted. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/",
  reason: TopologyDescription {
    type: 'ReplicaSetNoPrimary',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map {
      'cluster0-shard-00-02.guxmm.mongodb.net:27017' => [ServerDescription],
      'cluster0-shard-00-00.guxmm.mongodb.net:27017' => [ServerDescription],
      'cluster0-shard-00-01.guxmm.mongodb.net:27017' => [ServerDescription]
    },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  }
}

非常感谢。

您可以尝试以下步骤:

点击网络访问。 单击“删除”按钮旁边的“编辑”按钮。 单击添加当前IP地址按钮并单击确认。 这样,您就可以从任何IP地址访问数据库

让我知道它是否适合您:

使用当前IP地址 mongodb上的1Go到网络访问
2选择当前Ip地址

首先感谢您的帮助!事实上,正如我在问题中所说的,我已经尝试了0.0.0.0,它应该允许我从任何ip地址访问。我还尝试单击“添加当前IP地址”,以允许我仅从我的IP地址访问,但不工作。如果您从它以前工作的同一网络访问它,我将尝试单击“添加当前IP地址”。如果没有,请尝试切换网络,因为在某些网络中它被防火墙阻止。我最终解决了这个问题。问题是我的计算机上的防火墙,而不是网络上的防火墙。您是如何解决防火墙错误的?我也面临着同样的问题。我也面临着同样的问题,在我的macbook上,我没有任何防火墙,因此,我不确定是什么阻止了我的连接。我将我的网络连接从路由器更改为移动热点连接,并且成功了。我真的很高兴。。有时,我也会在不理解原因的情况下犯下这个错误,但现在我明白这很容易。你需要做的是进入项目并编辑时区……这很容易