无法使用MEAN堆栈连接到Mongodb.atlas群集

Tra*_*ler 1 mongoose mongodb node.js mean-stack

使用MEAN堆栈连接到我的服务器时遇到问题。直到今天,我都没有连接问题,并且从那以后也没有进行任何代码更改,因此我对为什么突然无法连接感到困惑。

连接:

mongoose.connect("mongodb+srv://theller5567:" + process.env.MONGO_ATLAS_PW + "@cluster0-efzkv.mongodb.net/node-angular", { useNewUrlParser: true })
.then(() => {
    console.log("Connected to database!");
})
.catch((error) => {
    console.log("Connection failed!", error);
});
Run Code Online (Sandbox Code Playgroud)

响应:

[nodemon] starting `node server.js`
Connection failed! { MongoNetworkError: failed to connect to server 
[cluster0-shard-00-01-efzkv.mongodb.net:27017] on first connect 
[MongoNetworkError: getaddrinfo ENOTFOUND cluster0-shard-00-01- 
efzkv.mongodb.net cluster0-shard-00-01-efzkv.mongodb.net:27017]
at Pool.<anonymous> (/Users/Travis/Desktop/Github_Repos/OMNI-INC/Omni- 
pl/node_modules/mongodb-core/lib/topologies/server.js:564:11)
at Pool.emit (events.js:182:13)
at Connection.<anonymous> (/Users/Travis/Desktop/Github_Repos/OMNI-INC/Omni- 
pl/node_modules/mongodb-core/lib/connection/pool.js:317:12)
at Object.onceWrapper (events.js:273:13)
at Connection.emit (events.js:182:13)
at TLSSocket.<anonymous> (/Users/Travis/Desktop/Github_Repos/OMNI-INC/Omni- 
pl/node_modules/mongodb-core/lib/connection/connection.js:246:50)
at Object.onceWrapper (events.js:273:13)
at TLSSocket.emit (events.js:182:13)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {} }
Run Code Online (Sandbox Code Playgroud)

在终端中使用MongoShell连接的响应:

connecting to: mongodb+srv://cluster0-efzkv.mongodb.net/test
2018-09-21T13:22:28.817-0400 I NETWORK  [js] Starting new replica set monitor 
for Cluster0-shard-0/cluster0-shard-00-02-efzkv.mongodb.net.:27017,cluster0- 
shard-00-00-efzkv.mongodb.net.:27017,cluster0-shard-00-01- 
efzkv.mongodb.net.:27017
2018-09-21T13:23:22.276-0400 W NETWORK  [js] Unable to reach primary for set 
Cluster0-shard-0
2018-09-21T13:23:22.276-0400 I NETWORK  [js] Cannot reach any nodes for set 
Cluster0-shard-0. Please check network connectivity and the status of the 
set. This has happened for 1 checks in a row.
2018-09-21T13:23:22.280-0400 E QUERY    [js] Error: connect failed to replica 
set Cluster0-shard-0/cluster0-shard-00-02-efzkv.mongodb.net.:27017,cluster0- 
shard-00-00-efzkv.mongodb.net.:27017,cluster0-shard-00-01- 
efzkv.mongodb.net.:27017 :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

我的mongod像往常一样在单独的终端中运行。是否有人对可能的问题以及如何根据错误响应进行修复有任何想法?

任何帮助将是巨大的,谢谢!

ams*_*ams 5

在相同的情况下,您可以尝试一些尝试来帮助我。

  1. 登录到mongoDB Atlas并检查Atlas是否正在运行。如果工作正常,请转到“安全性”>“ IP白名单”并删除您的当前IP,然后在当前IP中添加一个新IP。也许是因为您的提供商更改了IP。还请检查您的mongoDB用户是否仍然有效,您可以在IP白名单选项卡旁边对其进行检查。
  2. 尝试卸载并重新安装您的猫鼬包。重新安装之前,请清理您的npm缓存。
  3. 更改您的URI-String类型以连接您的应用程序。将其从“ SRV连接字符串”更改为“标准连接字符串”。在集群内部的仪表板中,单击连接>连接应用程序>标准连接字符串。复制字符串,然后在应用程序中替换SRV-String。当我遇到有关Atlas的问题时,这在大多数时间帮助了我。
  4. 检查您使用的Internet连接是否没有阻止mongoDB地图集的流量/访问。