Невозможно подключиться к mongoDB Atlas, используя mon goose: {MongoNetworkError: не удалось подключиться к серверу} - PullRequest
1 голос
/ 26 января 2020

Хотя я не первый в Stackoverflow, который не может подключиться к атласу mongoDB с использованием mon goose, похоже, никто не указал мою ошибку c:

{MongoNetworkError: не удалось подключиться к серверу [cluster0-shard-00-00-shqn c .mongodb. net: 27017] при первом подключении [MongoNetworkError: подключение 5 к cluster0-shard-00-00-shqn c .mongodb . net: 27017 закрыто]

Вот как настроен мой сервер:

Ключи. js

module.exports = {
  mongoURI:
    "mongodb+srv://Ahmed:<MyMongoDBAtlasPWD>@cluster0-shqnc.mongodb.net/test?retryWrites=true&w=majority"
};  

Сервер. js

const express = require("express");
const mongoose = require("mongoose");
const app = express();

// DB Config
const db = require("./config/keys").mongoURI;

// Connect to MongoDB
mongoose
  .connect(db, {
    useNewUrlParser: true
  })
  .then(() => {
    console.log("MongoDB connected!");
  })
  .catch(err => {
    console.log(err);
  });

app.get("/", (req, res) => {
  res.send("Hello");
});

//process.env.Port is for Heroku
const port = process.env.Port || 5000;
// `` ES6 Template literal is used so that we can put a variable inside the String
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});  

И этот код, предложенный на веб-сайте атласа MongoDB, будет использоваться:

const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://Ahmed:<password>@cluster0-shqnc.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
  const collection = client.db("test").collection("devices");
  // perform actions on the collection object
  client.close();
});

Но, поскольку я я не хочу использовать mongoClient, а только mon goose, у меня возникли некоторые проблемы, и я не могу понять, почему код не работает;

EDIT 1: Мне удалось подключиться с помощью команды Shell (Ознакомьтесь с моим ответом). Однако подключение через приложение не работает и выдает другую ошибку:

{MongoNetworkError: не удалось подключиться к серверу [cluster0-shard-00-01-shqn c .mongodb. net: 27017] при первом подключении [MongoError: bad auth Аутентификация не удалась.]

EDIT 2: Я допустил глупую ошибку. Я забыл удалить <> из. Теперь все хорошо.

Ответы [ 2 ]

2 голосов
/ 26 января 2020

Проблема в том, что я пытался подключиться, используя пароль учетной записи MongoDB Atlas вместо пароля пользователя. Да, это две разные вещи.
1. Нажмите на доступ к базе данных
enter image description here

2. Отредактируйте текущего пользователя и измените пароль enter image description here

3. Используйте этот пароль для подключения к MongoDB Atlas
enter image description here

1 голос
/ 26 января 2020

Убедитесь, что у вас есть белый список c IP. Вы можете найти это, прибегая к помощи «что такое мой ip».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...