每个验证选项的 Joi 自定义错误
Joi custom error for each validation option
我有 Joi
架构并想为每个选项指定自定义错误消息。
我的架构示例:
const schema = Joi.object().keys({
name: Joi.string()
.min(5).error(() => 'first message')
.max(25).error(() => 'second message')
.required().error(() => 'third message')
)}
目前此验证的工作方式如下:如果任何选项无效,则仅显示第三条消息。
预期行为 - 根据哪个选项无效显示错误消息(作为默认的 Joi 行为,但带有我的自定义错误消息)。
谢谢您的问候!
对于我的情况,我刚刚找到了这样的解决方案:
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" };
}
}
)
})
似乎不是最好的,因为它会导致代码过多,尤其是如果你有大表格,但它会按我的意愿工作。
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"
})
})
这是显示自定义错误消息的最佳方式
我有 Joi
架构并想为每个选项指定自定义错误消息。
我的架构示例:
const schema = Joi.object().keys({
name: Joi.string()
.min(5).error(() => 'first message')
.max(25).error(() => 'second message')
.required().error(() => 'third message')
)}
目前此验证的工作方式如下:如果任何选项无效,则仅显示第三条消息。
预期行为 - 根据哪个选项无效显示错误消息(作为默认的 Joi 行为,但带有我的自定义错误消息)。
谢谢您的问候!
对于我的情况,我刚刚找到了这样的解决方案:
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" };
}
}
)
})
似乎不是最好的,因为它会导致代码过多,尤其是如果你有大表格,但它会按我的意愿工作。
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"
})
})
这是显示自定义错误消息的最佳方式