Ошибка подключения MongoDB / Mongoose, когда в строке подключения используется имя Dbname - PullRequest
1 голос
/ 20 июня 2019

Приложение NodeJS использует mongoose 5.6.0 для подключения к MongoDB 4.0.10, которая запускается на локальном узле внутри контейнера Docker.

Соединение может быть установлено при использовании

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017'
mongoose.connect(mongoUri)

Проблема: Мы начинаем получать ошибки аутентификации, когда мы включаем имя базы данных, к которой мы подключаемся.Нет проблем с использованием Python для подключения к той же базе данных MongoDB.

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017/my-db'
mongoose.connect(mongoUri)

, а также попытка

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017/my-db'
mongoose.connect(mongoUri, { useNewUrlParser: true })

UnhandledPromiseRejectionWarning: MongoNetworkError: не удалось подключиться к серверу[127.0.0.1:27017] при первом подключении [MongoError: Ошибка аутентификации.

Почему невозможно установить соединение и как мы можем решить эту проблему?

Обновление

Найдено решение

const mongoUri = 'mongodb://admin:mypassword@127.0.0.1:27017'
mongoose.connect(mongoUri, { useNewUrlParser: true, dbName: 'my-db' })

Почему dbname должен передаваться как опция, а не включаться в строку подключения?

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