Пользовательский валидатор Mongoose завершается ошибкой, если отсутствует обязательное поле - PullRequest
2 голосов
/ 21 мая 2019

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

Мои вопросы:

  1. Это правильное поведение?
  2. Как я могу пропустить проверку, если поле отсутствует?

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Вы можете использовать пользовательский валидатор, так как он вызывается только при наличии значения.

Смотрите также: Проверка Mongoose: требуется: ложь, проверка: регулярное выражение, проблемы с пустыми значениями

0 голосов
/ 21 мая 2019

Обнаружена проблема: схема mongoose содержит свойство "default":

addr: { type: String, maxlength: [50, "max length for address"], validate: { validator: validators.validateAddress, message: "address is invalid" }, default: "" },

Если это свойство появляется, объект должен иметь поле 'addr', в противном случае проверка завершится неудачей.

...