Joi 验证自引用嵌套模式
Joi validate self-referencing nested schema
我正在尝试验证一个模式,该模式与其他字段一起具有一组自引用对象,如下所示:
export const answer = answerModel.concat(Joi.object().keys({
childAnswers: Joi.array().items(answer),
numArray: Joi.array().items(Joi.number()).required()
}))
我的问题是我无法在答案架构 Joi.array().items(answer) 中引用答案架构,因为我无法在声明它之前使用它。
问题是"is there any way to self-reference in this nested format for validation"?
您可以使用 Joi.link()
来达到这个目的:
const person = Joi.object({
firstName: Joi.string().required(),
lastName: Joi.string().required(),
friends: Joi.array().items(Joi.link('#person'))
}).id('person');
我正在尝试验证一个模式,该模式与其他字段一起具有一组自引用对象,如下所示:
export const answer = answerModel.concat(Joi.object().keys({
childAnswers: Joi.array().items(answer),
numArray: Joi.array().items(Joi.number()).required()
}))
我的问题是我无法在答案架构 Joi.array().items(answer) 中引用答案架构,因为我无法在声明它之前使用它。
问题是"is there any way to self-reference in this nested format for validation"?
您可以使用 Joi.link()
来达到这个目的:
const person = Joi.object({
firstName: Joi.string().required(),
lastName: Joi.string().required(),
friends: Joi.array().items(Joi.link('#person'))
}).id('person');