我对我的一条路线进行了以下验证:
payload: {
keywordGroups: Joi.array().items(Joi.object().keys({
language: Joi.string().required(),
containsAny: Joi.array().items(Joi.string()).default([]).when('containsAll', { is: [], then: Joi.required() }),
containsAll: Joi.array().items(Joi.string()).default([]).when('containsAny', { is: [], then: Joi.required() }),
notContainsAll: Joi.array().items(Joi.string()).default([]),
notContainsAny: Joi.array().items(Joi.string()).default([])
})).required(),
}
我正在努力做到这一点,containsAny
或者containsAll
必须至少包含一个字符串。如果containsAny
为空,containsAll
则应至少有一项。如果containsAll
为空,containsAny
则至少应包含一项。
Joi.when
但是当涉及到对象数组时,它似乎并没有真正起作用。