[英]Joi error message for nested array of object
我從客戶端獲得了此用戶輸入,我正在使用Joi進行后端驗證。
const Joi = require("joi")
const schema = Joi.array().items(
Joi.object().required().keys({
name: 'filter_list',
value: Joi.array().items(
Joi.object().required().keys({
id: 'popular_filters',
value: Joi.array().required().items(
Joi.object().required().keys({
id: Joi.string().required(),
name: Joi.string().required(),
items: Joi.array().items(
Joi.object().keys({
id: Joi.string().required(),
name: Joi.string().required()
})
)
})
)
})
)
})
);
// Return result.
const result = Joi.validate([
{
name: 'filter_list',
value: [{
id: 'popular_filters',
value: [{
id: '1',
name: 'Gym',
items: [{
id: 1, // bad error msg
name: 'x'
}]
}]
}]
}
], schema);
console.log('error: ', result.error);
演示: https : //runkit.com/eldyvoon/5d7b59184bd7b300144a2730
我有錯誤
Error: "value" at position 0 fails because [child "value" fails because ["value" at position 0 fails because [child "value" fails because ["value" at position 0 fails because [child "items" fails because ["items" at position 0 fails because [child "id" fails because ["id" must be a string]]]]]]]]
由Joi。 我不希望提供自定義錯誤消息,但Joi應該給我一些類似id should be in string not number
在定義模式時,只需在鏈中提供一個錯誤函數即可。
Joi.object().keys({
id: Joi.string().required().error(new Error('id should be in string not number')),
name: Joi.string().required()
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.