Atlas MongoDB 连接

3

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

最初的回答:我正试图使用MongoDB连接字符串提供的以下URI连接到Atlas 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));

我遇到了以下错误:

最初的回答:

{ 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)]: {} }

为了安全起见,请隐藏您的连接URL。 - undefined
糟糕!我编辑了它。不过这只是一个原型而已,谢谢你。 - undefined
5个回答

5

请确保您在Atlas控制面板中将IP地址添加到白名单中。

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

enter image description here

然后您就可以拥有以下连接字符串:

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

var db = mongoose.connect(connectionString).catch((error) => { console.log(error); });

1
我使用了您的解决方案,允许来自任何主机的访问,它起作用了!谢谢您,先生。 - undefined

2

将IP地址加入白名单,最佳选项允许从任何主机访问,我相信每个人都已经安装了mongoose,如果没有,请使用此命令。

npm i mongoose

首先从mongodb.com复制您的应用程序连接字符串->集群->连接->连接您的应用程序

现在选择驱动程序Node.js和最新版本,然后复制连接字符串。

现在是connection.js

const mongoose = require('mongoose');
const conStr = 'mongodb+srv://lord:<password>@cluster5-eeev8.mongodb.net/test?retryWrites=true&w=majority'

const DB = conStr.replace(
  '<password>',
  myPass
);

const DB = conStr.replace(
  'test',
  myDatabaseName
);
//remember mongoose.connect() return promise
mongoose
  .connect(DB, {
    usedNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then((con) => {
    console.log(con.connection);
    console.log('DB connection successful');
  });

0
你使用的是哪个版本的mongoose?低于5.0.15版本的mongoose似乎不支持mongodb+srv://服务器URL。
另一个常见问题是白名单中的IP地址。
来源: 连接MongoDb Atlas服务器时出错

0
为了连接到Atlas MongoDB,您应该配置IP白名单。前往MongoDB Atlas网站,登录。然后,在集群视图中,选择安全选项卡,然后选择IP白名单。您将看到一个IP地址。点击“编辑”按钮,然后选择“当前IP地址”。按下确定。然后重新启动您的服务器。
有用的链接:https://docs.atlas.mongodb.com/security-whitelist/#add-whitelist-entries

-3
只需在Atlas UI中将IP地址加入白名单,无需重新启动应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接