VIKINGVyksa
@VIKINGVyksa
front-end developer

Как обрабатывать ошибки в mongoose?

Как обрабатывать такие ошибки как запись нового документа поле которого должно быть уникально но повторилось?
В данный момент это валит весь вроцесс(
Я знаю что можно переписать на свой лад тексты ошибок, типо
// customize within each schema or globally like so
  var mongoose = require('mongoose');
  mongoose.Error.messages.String.enum  = "Your custom message for {PATH}.";

Я повесил обработчик типо
mongoose.connection.on('error',function(err){
	log.error('Could not connect to mongo server!');
});

Но он по сути только на соединении с базой ловит ошибки.

Как отловить ошибки типо "MongoError:E11000 duplicate key..."?
Можно сказать ошибки самой mongoDB.
  • Вопрос задан
  • 955 просмотров
Пригласить эксперта
Ответы на вопрос 2
mourr
@mourr
Passionate JS developer
А вы обрабатывайте в коллбеке, который вы передаете в .save. Туда ошибка прилетает первым параметром
Ответ написан
Комментировать
//
       try {
            await client.save()
        } catch (error) {
            if (error.code == 11000) {
                return {err:1,data:Object.entries(error.keyPattern).reduce((a,v)=>{if(v[1]){a.push(v[0])}return a},[])}
            } else {
                console.error(error)
                return {err:2,data:error.code}
            }
        }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы