подключение mongoose не может справиться с ошибками - PullRequest
0 голосов
/ 29 мая 2018

Я создаю свой первый тестовый API оставшийся с Mongo и Node

Я открываю соединение с базой данных, и оно работает правильно ... но я не могу справиться с ошибкой.Несмотря на то, что я пишу неправильный URI, он устанавливает успешную связь.Пробовал с обещаниями, обратными вызовами и событиями, но ничего не работает:

Например:

const mongoose=require('mongoose');
mongoose.Promise = global.Promise;
const express=require('express');
const bodyParser=require('body-parser');
const portApp=1300;

const app=express();

app.listen(portApp,'localhost',()=>{
    console.log(`server works fine at ${portApp}`);


    mongoose.connect('mongodb://localhost:27017/RIGHTdbname')
    .then((res)=>
    {
        console.log(`successful connection to BBDD`);
       //console.log(res);

    })
    .catch((error)=>{

        console.log("error"+error.message);
    });

});

Это нормально, оно выдает "успешное соединениеto BBDD "... проблема в том, что когда я пишу неправильное имя базы данных, оно выдает то же самое!

Я пытался сделать это с помощью callback.как предложено здесь :

 mongoose.connect('mongodb://localhost:27017/WRONGdbname',function(err){

    if(err)
    {
        throw err;
    }
});

И попытался использовать эти события (взяты из здесь , и которые я на самом деле не понимаю, использовал только .on() метод jquery в прошлом, для задач делегирования событий), но он также не работает, потому что всегда запускается «подключенное» событие, даже если имя базы данных неверно.

// When successfully connected
mongoose.connection.on('connected', function () {  
  console.log('Mongoose default connection opened);
}); 

// If the connection throws an error
mongoose.connection.on('error',function (err) {  
  console.log('Mongoose default connection error: ' + err);
}); 

Можеткто-нибудь объяснит мне, что я делаю не так?Спасибо

1 Ответ

0 голосов
/ 30 мая 2018

«База данных» в строке подключения Mongo используется для аутентификации и имеет значение только в том случае, если вы передаете имя пользователя и пароль в URL с использованием синтаксиса mongodb://user:pass@host:port/database.

С ссылка

/ база данных Необязательно.Имя базы данных для проверки подлинности, если строка подключения содержит учетные данные для проверки подлинности в форме имя пользователя: пароль @.Если / database не указан и строка подключения содержит учетные данные, драйвер будет проходить аутентификацию в базе данных администратора.

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