Пользовательская ошибка Joi для каждой опции проверки
Я имею Joi
Схема и хотите указать пользовательское сообщение об ошибке для каждого из параметров.
Пример моей схемы:
const schema = Joi.object().keys({
name: Joi.string()
.min(5).error(() => 'first message')
.max(25).error(() => 'second message')
.required().error(() => 'third message')
)}
На данный момент эта проверка работает следующим образом: если какая-либо из опций недействительна, появляется только третье сообщение.
Ожидаемое поведение - появляется сообщение об ошибке в зависимости от того, какая опция недопустима (как поведение Joi по умолчанию, но с моим собственным сообщением об ошибке).
Спасибо с уважением!
0 ответов
const schema = Joi.object().keys({
title: Joi.string()
.min(5)
.max(25)
.required()
.messages({
"string.min": "first msg",
"string.max": "second msg",
"any.empty":"third msg"
})
})
Это лучший способ показать настраиваемые сообщения об ошибках
Для моей ситуации я просто нашел такое решение:
const schema = Joi.object().keys({
title: Joi.string()
.min(5)
.max(25)
.required()
.error((errors) => {
return errors.map(error => {
switch (error.type) {
case "string.min":
return { message: "first msg" };
case "string.max":
return { message: "second msg" };
case "any.empty":
return { message: "third msg" };
}
}
)
})
Кажется, не самый лучший, так как он вызывает слишком много кода, особенно если у вас большая форма, но это работает, как я хочу.