#javascript #node.js #mongoose
#javascript #node.js #mongoose
Вопрос:
В моем файле index.ts есть следующий код:
import mongoose from 'mongoose'
const DBUri = "blah";
const connectDatabase = (): void => {
try {
mongoose.connect(DBUri, {useNewUrlParser: true}, () => {
console.log('mongoose connected.')
})
} catch (e) {
console.log(e);
throw e
}
};
connectDatabase()
Когда я компилирую в js и выполняю файл, я mongoose connected
регистрируюсь в консоли. Но я бы ожидал, что будет выдана ошибка (поскольку DBUri
она сломана).
Что я делаю не так?
Ответ №1:
Вы обнаружите ошибку или отключение из-за этих событий
try {
mongoose.connect(DBUri, {useNewUrlParser: true}, () => {
console.log('mongoose connected.')
})
mongoose.connection.on('disconnected', () => { console.log("Disconnect") });
mongoose.connection.on('error', (error) => {
console.error('[error]: ', error);
});
} catch (e) {
console.log(e);
throw e
}
Ответ №2:
Вы должны фиксировать error
аргумент в своем обратном вызове в соответствии с документацией Mongoose:
mongoose.connect(DBUri, {useNewUrlParser: true}, (err) => {
if(err) return console.log('mongoose failed to connect.')
console.log('mongoose connected.')
});
Кроме того, try..catch
это излишне, поскольку вы уже передаете обработку ошибок Mongoose через этот обратный вызов.