繁体   English   中英

Atlas MongoDB 连接

[英]Atlas MongoDB connection

我正在尝试使用以下 URI(由 mongodb connection string 提供)连接到 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)]: {} }

确保您已在 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); });

将IP地址列入白名单,最好是允许任何主机访问,相信大家都安装了mongoose,如果没有就用这个命令

npm i mongoose

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

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

现在连接.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');
  });

为了连接到 Atlas MongoDB,您应该配置 IP 白名单。 转到 MongoDB Atlas 网站,登录。 然后,从 Clusters 视图中,选择 Security 选项卡,然后选择 IP Whitelist。 您将看到一个 IP 地址。 单击“编辑”按钮,然后单击“当前 IP 地址”。 按确定。 然后重启你的服务器。

有用的链接: https : //docs.atlas.mongodb.com/security-whitelist/#add-whitelist-entries

你用的是什么版本的猫鼬? 低于 5.0.15 的 mongoose 版本似乎不支持mongodb+srv://服务器 url。

另一个常见问题是列入白名单的 IP 地址。

来源: 连接到 MongoDb Atlas 服务器时出错

只需将 Atlas UI 中的 IP 列入白名单,无需重新启动应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM