Node.js MongooseError[MongooseServerSelectionError]:连接<;监控>;至52.6.250.237:27017关闭
我试图通过post方法将数据保存在mongodb中,并将mongodb atala与node.js一起使用,但它一直给我一个错误,我提供了正确的连接字符串和密码。请帮助解决这个问题。谢谢Node.js MongooseError[MongooseServerSelectionError]:连接<;监控>;至52.6.250.237:27017关闭,node.js,mongodb,Node.js,Mongodb,我试图通过post方法将数据保存在mongodb中,并将mongodb atala与node.js一起使用,但它一直给我一个错误,我提供了正确的连接字符串和密码。请帮助解决这个问题。谢谢 here is the code: const mongoose = require('mongoose'); const monngodb_url="mongodb+srv://maarij:asdf360@cluster0-j7wis.mongodb.net/authDB?retryWrites=true
here is the code:
const mongoose = require('mongoose');
const monngodb_url="mongodb+srv://maarij:asdf360@cluster0-j7wis.mongodb.net/authDB?retryWrites=true&w=majority";
mongoose.connect(monngodb_url, {useNewUrlParser: true,useUnifiedTopology: true}).then(()=>{
console.log("mongodb is connected");
}).catch((error)=>{
console.log("mondb not connected");
console.log(error);
});
here is Error:
server is running on port 3000
{ name: 'myName', email: 'e@mail.com', password: 'abcdefg' }
mondb not connected
MongooseError [MongooseServerSelectionError]: connection <monitor> to 52.6.250.237:27017 closed
at new MongooseServerSelectionError (D:\react-native\reactNativeBackend\node_modules\mongoose\lib\error\serverSelection.js:22:11)
at NativeConnection.Connection.openUri (D:\react-native\reactNativeBackend\node_modules\mongoose\lib\connection.js:808:32)
at Mongoose.connect (D:\react-native\reactNativeBackend\node_modules\mongoose\lib\index.js:333:15)
at Object.<anonymous> (D:\react-native\reactNativeBackend\db\db.js:5:10)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Module.require (internal/modules/cjs/loader.js:848:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (D:\react-native\reactNativeBackend\index.js:4:19)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10) {
message: 'connection <monitor> to 52.6.250.237:27017 closed',
name: 'MongooseServerSelectionError',
reason: TopologyDescription {
type: 'ReplicaSetNoPrimary',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map {
'cluster0-shard-00-01-j7wis.mongodb.net:27017' => [ServerDescription],
'cluster0-shard-00-02-j7wis.mongodb.net:27017' => [ServerDescription],
'cluster0-shard-00-00-j7wis.mongodb.net:27017' => [ServerDescription]
},
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
以下是代码:
const mongoose=require('mongoose');
const monngodb_url=“mongodb+srv://maarij:asdf360@cluster0-j7wis.mongodb.net/authDB?retryWrites=true&w=maist”;
connect(monngodb_url,{useNewUrlParser:true,useUnifiedTopology:true}){
log(“mongodb已连接”);
}).catch((错误)=>{
console.log(“mondb未连接”);
console.log(错误);
});
以下是错误:
服务器正在端口3000上运行
{name:'myName',电子邮件:'e@mail.com,密码:'abcdefg'}
mondb未连接
MongooseError[MongooseServerSelectionError]:与52.6.250.237:27017的连接已关闭
在新的MongooseServerSelectionError(D:\react native\reactNativeBackend\node\u modules\mongoose\lib\error\serverSelection.js:22:11)
位于NativeConnection.Connection.openUri(D:\react native\reactNativeBackend\node\u modules\mongoose\lib\Connection.js:808:32)
在Mongoose.connect(D:\react native\reactNativeBackend\node\u modules\Mongoose\lib\index.js:333:15)
反对。(D:\react native\reactNativeBackend\db\db.js:5:10)
at模块编译(内部/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:991:10)
在Module.load(内部/modules/cjs/loader.js:811:32)
at Function.Module._load(内部/modules/cjs/loader.js:723:14)
at Module.require(内部/modules/cjs/loader.js:848:19)
根据需要(internal/modules/cjs/helpers.js:74:18)
反对。(D:\react native\reactNativeBackend\index.js:4:19)
at模块编译(内部/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:991:10)
在Module.load(内部/modules/cjs/loader.js:811:32)
at Function.Module._load(内部/modules/cjs/loader.js:723:14)
位于Function.Module.runMain(internal/modules/cjs/loader.js:1043:10){
消息:“与52.6.250.237:27017的连接已关闭”,
名称:“MongooseServerSelectionError”,
原因:拓扑学描述{
类型:“ReplicateSetNoPrimary”,
setName:null,
maxSetVersion:null,
maxElectionId:null,
服务器:地图{
'cluster0-shard-00-01-j7wis.mongodb.net:27017'=>[ServerDescription],
'cluster0-shard-00-02-j7wis.mongodb.net:27017'=>[ServerDescription],
'cluster0-shard-00-00-j7wis.mongodb.net:27017'=>[ServerDescription]
},
陈腐:错,
是的,
兼容性错误:null,
logicalSessionTimeoutMinutes:空,
心跳频率:10000,
localThresholdMS:15,
commonWireVersion:空
},
[符号(mongoErrorContextSymbol)]:{}
}
我也有同样的问题,但我成功地解决了它。
在您的MongoDB帐户上,检查您选择用于连接应用程序的IP
如果您开始使用初始IP并尝试使用另一个IP地址,那么它将不起作用
在mongoDB中:
NetworkAccess/(验证您注册的IP与实际使用的IP相同)。您可以选择:添加IP地址您的index.js
应用程序中是否有此行。使用(cors())
尝试删除此行并删除所有涉及cors的内容
如果这不起作用,请尝试Mehdi Berra的解决方案您可以通过进入网络访问面板来解决此问题 然后单击添加IP地址 &然后填写0.0.0.0/0,然后单击确认 不要在生产中这样做,但在开发中,它会起作用
我也有类似的问题。 “转到网络访问”->“IP白名单”->您只能从这些IP地址连接到群集,因此如果您的IP不在该列表中
然后单击“添加IP地址”按钮->在此处单击“添加您当前的IP地址”按钮。这可能是因为您的机器的IP发生了变化,这不应该发生在生产中,但要修复它,您需要转到网络访问面板->添加IP地址,然后单击“添加此IP地址”,然后我就可以开始工作了,直到它再次改变。投票最多的解决方案在大多数情况下都不起作用。您应该首先遵循“Aka”解决方案的步骤,然后删除您的
node\u modules
文件夹。在那之后,只需运行npmi
重新安装所有依赖项,考虑到您已经在包中注册了依赖项,您应该可以开始了。json
这里的主要问题是Mongodb Atlas
。有效的方法
me将删除Mongodb网络部分中的现有IP地址
Atlas,然后再次添加。您可能希望删除此问题,并在删除登录凭据和url的情况下再次提问。各位,这显然是一个假密码。看看你的键盘,从A开始。错误消息echo是整行,而上面的
monngodb_url
行使用不同的变体,以相同的4个不太随机的字符开头。最后但并非最不重要的一点是,主机名cluster0-j7wis.mongodb.net
不存在。@double beep:您错过了实际密码的位置,monngodb\u url
值。谢谢。这节省了我2.5小时无用的努力。你必须实际白名单你的IP。不确定这是否是最好的解决方案,但它的快速和有效的为我!感谢Avi,这是用于开发目的的快速解决方案。这只是为了提醒您,请在开发过程中删除此解决方案,或者为prod使用另一台服务器,不要在生产服务器上添加此解决方案。只添加您服务器的IP地址对于我来说,我曾两次删除/添加允许所有
,但直到我在删除我的当前IP
和允许所有
,它才起作用