[英]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.