Приложение 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
должен передаваться как опция, а не включаться в строку подключения?