Mongoose не подключается к MongoDB Atlas - PullRequest
0 голосов
/ 07 июня 2019

Впервые я использую MongoDB Atlas для работы с Mongo, и при попытке соединения я получаю ошибку:

Error: connect ECONNREFUSED 3.209.60.172:27017
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1054:14) {
  name: 'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]: {}
}

Это мой код:

const express = require('express');
const mongoose = require('mongoose');

const app = express();

mongoose.connect('mongodb+srv://johnnybox:<password>@cluster0-cgxqx.mongodb.net/test?retryWrites=true&w=majority', { 
  useNewUrlParser: true
}).then(() => console.log('MongoDB Connected...'))
  .catch(err => console.log(err));

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use(require('./routes'));

app.listen(3331);

ps * Я не пропускаю свои учетные данные

Здесь уже искали решение, но нет ничего похожего на мою проблему.

Мой белый список:

* +1012 *enter image description here

Ответы [ 4 ]

0 голосов
/ 12 июня 2019

Я пытался запустить этот код дома, и он работал отлично!

Так что это было что-то здесь, в моем офисе, после некоторого тестирования проблема была с портом подключения, который был заблокирован.

Взгляните:

Error: connect ECONNREFUSED 3.209.60.172:27017

Обратите внимание, что он подключается к порту 27017

** Ip является случайным, поэтому он меняется после каждой заявки.

После того, как мой Sd открыл этот порт, все работало правильно !!

enter image description here

Большое спасибо за вашу помощь, ребята!

0 голосов
/ 07 июня 2019

Попробуйте добавить свой IP-адрес в белый список IP-адресов. В противном случае принимайте все соединения, если вам не нужно защищенное соединение.

0 голосов
/ 07 июня 2019

Новый ответ на новую ошибку:

Согласно этому ответу , в котором была точно такая же ошибка, а именно:

'MongoNetworkError',
  errorLabels: [ 'TransientTransactionError' ],
  [Symbol(mongoErrorContextSymbol)]:

Добавьте ваш текущийIP to whiteList, следующий за «кластерами / безопасностью / белым списком» на веб-сайте MongoDB.

Извините, я потратил хотя бы час, чтобы решить эту проблему.Это все, что я могу сделать.


Старый ответ, касающийся предыдущей ошибки (он исправил эту часть, но все равно получил новую ошибку):

Если вы внимательно прочитаете журнал ошибок, он говорит:

UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block

Это означает, что вам нужно добавить catch() к вашему соединению мангуста:

mongoose.connect({some code}).then({some code}).catch(err => console.log(err))

0 голосов
/ 07 июня 2019

попробуйте

mongoose
  .connect(
    'mongodb+srv://{my_user}:{mypass}@johnnybox-cgxqx.mongodb.net/johnnybox?retryWrites=true&w=majority',
    { useNewUrlParser: true }
  )
  .then(() => console.log('MongoDB Connected...'))
  .catch(err => console.log(err));
...