[英]Issues connecting with MongoDB Atlas from Node.js
我最近遇到了 mongoDB Atlas,所以我不太熟悉它。 我按照必要的程序進行了設置,並嘗試將我的 Node.js 代碼鏈接到它。 這就是我嘗試連接的方式:
const express = require("express");
const mongoose = require("mongoose");
const app = express();
app.use(express.json());
const db = require("./config/keys").mongoURI;
mongoose.connect(db, { useNewUrlParser: true, useUnifiedTopology: true})
.then(() => console.log("MongoDB successfully connected"))
.catch(err => console.log(err));
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server up and running on port ${port} !`));
mongoURI 存儲在 config/keys.js 文件中。 我確信這是正確的。
這是我每次使用 nodemon 運行它時收到的以下錯誤:
MongooseError [MongooseServerSelectionError]: Could not connect to any servers in your MongoDB Atlas cluster. Make sure your current IP address is on your Atlas cluster's IP whitelist: https://docs.atlas.mongodb.com/security-whitelist/.
at new MongooseServerSelectionError (/Users/Desktop/SEMESTER 2/Dummy/Server/node_modules/mongoose/lib/error/serverSelection.js:24:11)
at NativeConnection.Connection.openUri (/Users/Desktop/SEMESTER 2/Dummy/Server/node_modules/mongoose/lib/connection.js:823:32)
at Mongoose.connect (/Users/Desktop/SEMESTER 2/Dummy/Server/node_modules/mongoose/lib/index.js:333:15)
at Object.<anonymous> (/Users/Desktop/SEMESTER 2/Dummy/Server/server.js:10:10)
at Module._compile (internal/modules/cjs/loader.js:1200:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1049:32)
at Function.Module._load (internal/modules/cjs/loader.js:937:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
reason: TopologyDescription {
type: 'ReplicaSetNoPrimary',
setName: null,
maxSetVersion: null,
maxElectionId: null,
servers: Map(3) {
'dummy-shard-00-01-3gxsb.gcp.mongodb.net:27017' => [ServerDescription],
'dummy-shard-00-02-3gxsb.gcp.mongodb.net:27017' => [ServerDescription],
'dummy-shard-00-00-3gxsb.gcp.mongodb.net:27017' => [ServerDescription]
},
stale: false,
compatible: true,
compatibilityError: null,
logicalSessionTimeoutMinutes: null,
heartbeatFrequencyMS: 10000,
localThresholdMS: 15,
commonWireVersion: null
},
[Symbol(mongoErrorContextSymbol)]: {}
}
我已經更改了我的 IP 地址列表以包含每個 IP 地址,但它仍然不起作用。
大家知道這是什么原因嗎?
找到原因:原來我在嘗試連接 MongoDB 時連接的 wifi 不允許到端口 27017 的出站連接。我嘗試使用其他 wifi 來源,它解決了這個問題。
我寫這篇文章是為了幫助其他人節省時間,因為我已經浪費了我的時間來解決這個問題。 如果您覺得您的代碼完全正確,那么也沒有連接,您必須做的基本設置
2.簽入您選擇管理員選項的內置角色。
3.請檢查您是否沒有連接到任何VPN,因為在制作集群時您選擇了不同的國家。
4.確保您的連接字符串格式為“ mongodb+srv:// yourid : password@cluster0.0q8wi.mongodb.net/databasename ”
6.第一次不要做多個連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.