图集 MongoDB 连接
Atlas MongoDB connection
我正在尝试使用以下 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));
我收到以下错误:
{ 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 MongoDB,您应该配置 IP 白名单。转到 MongoDB Atlas 网站,登录。然后,从集群视图中,select 安全选项卡,然后是 IP 白名单。您将看到一个 IP 地址。单击 "Edit" 按钮,然后单击 "current IP address"。按确定。然后重新启动服务器。
有用link:https://docs.atlas.mongodb.com/security-whitelist/#add-whitelist-entries
您使用的猫鼬是什么版本?版本低于 5.0.15 的 mongoose 似乎不支持 mongodb+srv://
服务器 url。
另一个常见问题是列入白名单的 IP 地址。
来源:
确保您已在 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); });
只需要从Atlas中将IP列入白名单UI无需重启应用
将IP地址列入白名单,最好允许任何主机访问,相信大家都安装过mongoose,如果没有就用这个命令
npm i mongoose
首先从 mongodb.com -> clusters->connect->connect your application
复制你的应用程序连接字符串
现在选择驱动程序 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');
});
我正在尝试使用以下 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));
我收到以下错误:
{ 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 MongoDB,您应该配置 IP 白名单。转到 MongoDB Atlas 网站,登录。然后,从集群视图中,select 安全选项卡,然后是 IP 白名单。您将看到一个 IP 地址。单击 "Edit" 按钮,然后单击 "current IP address"。按确定。然后重新启动服务器。
有用link:https://docs.atlas.mongodb.com/security-whitelist/#add-whitelist-entries
您使用的猫鼬是什么版本?版本低于 5.0.15 的 mongoose 似乎不支持 mongodb+srv://
服务器 url。
另一个常见问题是列入白名单的 IP 地址。
来源:
确保您已在 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); });
只需要从Atlas中将IP列入白名单UI无需重启应用
将IP地址列入白名单,最好允许任何主机访问,相信大家都安装过mongoose,如果没有就用这个命令
npm i mongoose
首先从 mongodb.com -> clusters->connect->connect your application
复制你的应用程序连接字符串现在选择驱动程序 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');
});