intermediate

Validation

Валидируйте document shape на application boundary, сохраняя alignment с database constraints и API validation.

Валидаторы Mongoose выполняются на путях документа перед save или на настроенных путях update. Они дополняют — но не заменяют — валидацию API, авторизацию и уникальные индексы.

					email: {
  type: String,
  required: true,
  validate: { validator: isEmail, message: 'invalid email' },
},
sku: { type: String, unique: true } // создаёт индекс, не runtime-валидатор
				

На интервью: required-поля, кастомные валидаторы, `runValidators` при update и почему уникальность требует индекса и обработки duplicate key в приложении.

Типовые ошибки: `unique: true` как обычный валидатор; update без валидаторов; валидация вместо auth или транзакционных правил.

Компромисс — защита на слое персистентности против дублирования правил в API и БД.

Чеклист:

  • Валидируйте вход API до персистентности.
  • Используйте индексы для уникальности.
  • Проверяйте поведение валидаторов при update.
  • Явно обрабатывайте duplicate key.