Atlas MongoDB 连接

ism*_*tit 3 node.js express mern mongodb-atlas

我正在尝试使用以下 URI 连接到 Atlas MongoDB(由 mongodb 连接字符串提供)

    module.exports = {
        mongoURI:'mongodb+srv://<user>:<password>@cluster0-un6sk.mongodb.net/test? 
    retryWrites=true'
    };

    //connect to mongoose
    mongoose
        .connect(db)
        .then( ()=>console.log('mongoDB connected'))
        .catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

{ MongoNetworkError: connection 3 to cluster0-shard-00-00-un6sk.mongodb.net:27017 closed
    at TLSSocket.<anonymous> (C:\Users\KARTIT Ismail\Desktop\devconnector\node_modules\mongodb-core\lib\connection\connection.js:352:9)
    at Object.onceWrapper (events.js:273:13)
    at TLSSocket.emit (events.js:182:13)
    at _handle.close (net.js:606:12)
    at TCP.done (_tls_wrap.js:386:7)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }
Run Code Online (Sandbox Code Playgroud)

Ben*_*min 5

确保您已在 Atlas 控制面板中将您的 IP 列入白名单。

0.0.0.0如果您希望允许任何主机访问,您可以输入。

在此输入图像描述

然后你可以有一个像下面这样的连接字符串:

var connectionString= 'mongodb://<username>:<password>@<clustername>/<dbname>?ssl=true&replicaSet=<replica setname>&authSource=admin';

var db = mongoose.connect(connectionString).catch((error) => { console.log(error); });
Run Code Online (Sandbox Code Playgroud)