Я пытаюсь выполнить проверку при сохранении элемента. Вот моя урезанная модель:Проверка полей, которые зависят друг от друга в Keystone.js
Sample.add({
isPublished: { type: Types.Boolean, default: false },
thumbnailImage: { type: Types.CloudinaryImage, folder: 'samples/thumbnails' },
});
Sample.schema.pre('validate', function(next) {
if (this.isPublished && !(_.isEmpty(this.thumbnailImage.image))) {
next('Thumbnail Image is required when publishing a sample');
}
else {
next();
}
});
Я хочу, чтобы вызвать ошибку, если Sample
модели имеет isPublished
набор для true
но thumbnailImage
не была установлена. Когда I console.log()
значения, я вижу true
и false
соответственно, но в Keystone Admin не возникает ошибки проверки.
Я просмотрел примеры приложений на Github для Keystone, и в документах Mongoose есть много примеров, но я не видел никаких дескрипторов нескольких путей к документам.
Пример: mongoose custom validation using 2 fields (в настоящее время с 12 upvotes) тоже не работает для меня.
Что я делаю неправильно? Я использую Mongoose 3.8.35.
OFFS. Спасибо что подметил это. Сообщение, которое я получаю сейчас, это: 'TypeError: строка не является функцией'. Я предполагаю, что мне нужно передать функцию обратного вызова? – Brandon
Yeppers. Я собирался опубликовать то же самое. Большое вам спасибо за помощь. Очевидно, мне нужно больше кофе. – Brandon