Пн goose: дубликат ключа E11000 меняет тип сообщения возврата в случае ошибки - PullRequest
1 голос
/ 20 апреля 2020

Мне возвращается следующее сообщение: E11000 duplicate key error collection ..., когда один из атрибутов, указанный как unique: true, можно изменить это сообщение об ошибке, например, на пользовательское:

{error: '11000', field: 'name of the field giving the problem'}

1 Ответ

1 голос
/ 20 апреля 2020

Уникальность в mongoose не является параметром validation, поэтому вы не можете создать пользовательское сообщение об ошибке для этих полей, а только создать uniqueness index в БД.

Что вы можете сделать есть, создайте промежуточное программное обеспечение для обработки ошибок в понедельник goose, перехватите 11000 ошибок и отправьте custom error message в response.

из пн goose документация

// Handler **must** take 3 parameters: the error that occurred, the document
// in question, and the `next()` function
schema.post('save', function(error, doc, next) {
  if (error.name === 'MongoError' && error.code === 11000) {
    next(new Error('There was a duplicate key error'));
  } else {
    next();
  }
});

Примечание. Это позволяет отловить ошибку ключа дублирования 11000, но не сообщает, какое поле вызвало проблему.

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