Проблемы с подключением mongoose к mlab: UnhandledPromiseRejectionWarning: отклонение необработанного обещания

enter image description here

const express = require('express');
const app = express();
const mongoose = require('mongoose');
require('./models/users');
require('./services/passport');
const authRoutes = require('./routes/authRoutes');
const Keys = require('./config/dev');

authRoutes(app);

mongoose.connect(Keys.MONGOOSE_URI);

const port = process.env.PORT || 5000;
app.listen(port);

У меня есть приложение node express, и я пытаюсь подключиться к базе данных mlab с помощью mongoose. Я получаю следующее исключение:

UnhandledPromiseRejectionWarning: необработанное отклонение обещания (идентификатор отказа: 1): MongoNetworkError: не удалось подключиться к серверу [ds111598.mlab.com:11598] otworkError: connect ECONNREFUSED 35.168.9.109:11598]

Технологический стек, который я использую:

"mongoose": "^4.11.1",
node: 6.11.1
npm: 4.6.1

Я также пробовал использовать последнюю версию мангуста, но все та же проблема. Я застрял из-за этого. Кто-нибудь может в этом помочь?

Спасибо


person ankit gupta    schedule 24.01.2018    source источник
comment
ты за каким-нибудь прокси?   -  person Syed    schedule 24.01.2018
comment
Привет, Ankit, похоже, это проблема с сетевым подключением, а не проблема с вашим кодом. В документации mLab есть инструкции по устранению проблем с сетью здесь: docs.mlab.com/connecting/#help Если вам нужна помощь в устранении проблемы, напишите об этой ошибке по адресу [email protected].   -  person tfogo    schedule 24.01.2018


Ответы (4)


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

 const options = {
    useMongoClient: true,
    autoIndex: false, // Don't build indexes
    reconnectTries: 100, // Never stop trying to reconnect
    reconnectInterval: 500, // Reconnect every 500ms
    poolSize: 10, // Maintain up to 10 socket connections
    // If not connected, return errors immediately rather than waiting for reconnect
    bufferMaxEntries: 0
  };
mongoose.connect('mongodb://user:[email protected]:667799/DB_NAME',options).then(
  ()=>{
    console.log("connected to mongoDB")},
 (err)=>{
     console.log("err",err);
}

)

person yogesh agrawal    schedule 24.01.2018
comment
Я уверен, что это проблема с прокси, потому что я тоже столкнулся с тем же. - person yogesh agrawal; 24.01.2018
comment
Я пробовал ваш код, но с такой же ошибкой. Также я попытался подключиться через частное подключение к Интернету, но безуспешно. Не могли бы вы рассказать больше о том, как вы устранили проблему. - person ankit gupta; 24.01.2018
comment
Я изменил проверку кода один раз и удалил прокси, он не входит в прокси - person yogesh agrawal; 24.01.2018
comment
Спасибо Йогешу за ответ. Но я все еще получаю ту же ошибку. Скриншот прилагаю. - person ankit gupta; 24.01.2018
comment
проверьте, удалив прокси-сервер npm, также удалите прокси-сервер npm, удалите конфигурацию npm https-proxy - person yogesh agrawal; 24.01.2018
comment
Спасибо, Йогеш, использование прокси-сервера для удаления конфигурации npm устранило проблему. Но теперь я получаю аналогичную проблему в паспорте JS google oauth20 UnhandledPromiseRejectionWarning: Необработанное отклонение обещания (идентификатор отказа: 3): Ошибка: промежуточное ПО паспорта.initialize () не используется - person ankit gupta; 25.01.2018

РЕШЕНИЕ

Я только что столкнулся с той же проблемой и потратил несколько минут, пытаясь отладить и найти успешное решение.

Но мне очень легко удалось это решить.

Проблема с получением ошибки аутентификации заключается в том, что на mlab еще не создан пользователь, который был бы удаленно подключен к mongo.

Успешное создание базы данных в mlab - не последний шаг перед возвратом к текстовому редактору для подключения к mongo через предоставленный URL-адрес на странице mlab.

НАДО СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ НА вкладке «ПОЛЬЗОВАТЕЛИ» в mlab, которая находится на странице сведений о базе данных.

Затем добавьте учетные данные, чтобы создать пользователя, а затем, наконец, добавьте эти учетные данные в URL-адрес mongo, предоставленный mlab.

И валла! ВЫ ПОДКЛЮЧЕНЫ.

person Waleed93    schedule 07.06.2018

Создайте нового пользователя и, что более важно, убедитесь, что пароль для пользователя содержит только буквы и цифры. No special characters like . # , и т. Д.

person Ekundayo Blessing Funminiyi    schedule 26.12.2018

Я решил эту проблему, не используя "." в имени пользователя db. Это неясно, но это устранило мою проблему.

person Maximillion Bartango    schedule 08.02.2019