Подключение Atlas MongoDB

Я пытаюсь подключиться к Atlas MongoDB со следующим URI (предоставляется строкой подключения mongodb)

    module.exports = {
        mongoURI:'mongodb+srv://<user>:<password>@cluster0-un6sk.mongodb.net/test? 
    retryWrites=true'
    };

    //connect to mongoose
    mongoose
        .connect(db)
        .then( ()=>console.info('mongoDB connected'))
        .catch(err => console.info(err));

Я получаю следующую ошибку:

{ MongoNetworkError: connection 3 to cluster0-shard-00-00-un6sk.mongodb.net:27017 closed
    at TLSSocket.<anonymous> (C:\Users\KARTIT Ismail\Desktop\devconnector\node_modules\mongodb-core\lib\connection\connection.js:352:9)
    at Object.onceWrapper (events.js:273:13)
    at TLSSocket.emit (events.js:182:13)
    at _handle.close (net.js:606:12)
    at TCP.done (_tls_wrap.js:386:7)
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {} }

Пожалуйста, скройте URL-адрес для подключения в целях безопасности.

noitse 03.05.2019 16:37

упс! Я отредактировал это. это только для прототипа, спасибо

ismail kartit 03.05.2019 16:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
3 875
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Для подключения к Atlas MongoDB необходимо настроить белый список IP-адресов. Перейдите на сайт MongoDB Atlas, авторизуйтесь. Затем в представлении «Кластеры» выберите вкладку «Безопасность», затем «Белый список IP-адресов». Вы увидите IP-адрес. Нажмите кнопку «Изменить», затем «текущий IP-адрес». Нажмите ОК. Затем перезапустите свой сервер.

Полезная ссылка : https://docs.atlas.mongodb.com/security-whitelist/#add-whitelist-entries

Какую версию мангуста вы используете? Версии мангуста ниже версии 5.0.15 не поддерживают URL-адрес сервера mongodb+srv://.

Другая распространенная проблема — белые IP-адреса.

Источник: Ошибка при подключении к MongoDb Atlas Server

Ответ принят как подходящий

Убедитесь, что вы внесли свой IP-адрес в белый список на панели управления Atlas.

Вы можете ввести 0.0.0.0, если хотите разрешить доступ с любого хоста.

Затем вы можете иметь строку подключения, как показано ниже:

var connectionString= 'mongodb://<username>:<password>@<clustername>/<dbname>?ssl=true&replicaSet=<replica setname>&authSource=admin';

var db = mongoose.connect(connectionString).catch((error) => { console.info(error); });

Я использовал ваше решение, разрешив доступ с любого хоста, и это сработало! Спасибо, сэр

ismail kartit 04.05.2019 12:35

Просто внесите IP-адрес в белый список из пользовательского интерфейса Atlas, не нужно перезапускать приложение.

Белый список IP-адреса, лучший вариант разрешает доступ с любого хоста, я считаю, что все установили mongoose, если нет, то используйте эту команду

npm i mongoose

Сначала скопируйте строку подключения вашего приложения с mongodb.com -> clusters->connect->connect your application

Теперь выберите драйвер Node.js и последнюю версию, теперь скопируйте строку подключения.

Теперь подключение.js

const mongoose = require('mongoose');
const conStr = 'mongodb+srv://lord:<password>@cluster5-eeev8.mongodb.net/test?retryWrites=true&w=majority'

const DB = conStr.replace(
  '<password>',
  myPass
);

const DB = conStr.replace(
  'test',
  myDatabaseName
);
//remember mongoose.connect() return promise
mongoose
  .connect(DB, {
    usedNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then((con) => {
    console.info(con.connection);
    console.info('DB connection successful');
  });

Другие вопросы по теме