簡體   English   中英

從 Node.js 與 MongoDB Atlas 連接的問題

[英]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 來源,它解決了這個問題。

我寫這篇文章是為了幫助其他人節省時間,因為我已經浪費了我的時間來解決這個問題。 如果您覺得您的代碼完全正確,那么也沒有連接,您必須做的基本設置

  1. 在 Mongodb Atlas 中查看您的網絡訪問是否是您的 IP 地址或者更喜歡允許訪問所有人。

2.簽入您選擇管理員選項的內置角色。


3.請檢查您是否沒有連接到任何VPN,因為在制作集群時您選擇了不同的國家。


4.確保您的連接字符串格式為“ mongodb+srv:// yourid : password@cluster0.0q8wi.mongodb.net/databasename


  1. 確保根據 Mongoose、Node.js、Express 等框架提供的文檔閱讀並遵守命令。

6.第一次不要做多個連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM