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');