Joi 验证:or() 和 xor() 条件取决于字段值
Joi validation: or() and xor() condition depending upon field value
我的架构如下所示:
{
a: joi.boolean(),
b: joi.object(),
c: joi.object()
}
根据字段 a = false 的值,我希望字段 b 或 c 存在。如果 a 为假,我想在字段 b 和 c 上使用异或条件。
我试过使用 when,但找不到完美的解决方案。
{
a: Joi.boolean(),
b: Joi.object().when('a', {
is: false,
then: Joi.object().required()
otherwise: Joi.object()
}),
c: Joi.object().when('a', {
is: false,
then: Joi.object().required()
otherwise: Joi.object()
}),
}
我想你正在寻找这样的东西。
Joi.when()
我可以找到一种可能的解决方案。给你了。
Joi.object({
a: Joi.boolean(),
b: Joi.object(),
c: Joi.object()
})
.required()
.when( Joi.object({a:false}).unknown(), {
then: Joi.object().or('a','b'),
otherwise: Joi.object().oxor('a','b')
})
这对我有用。
我的架构如下所示:
{
a: joi.boolean(),
b: joi.object(),
c: joi.object()
}
根据字段 a = false 的值,我希望字段 b 或 c 存在。如果 a 为假,我想在字段 b 和 c 上使用异或条件。
我试过使用 when,但找不到完美的解决方案。
{
a: Joi.boolean(),
b: Joi.object().when('a', {
is: false,
then: Joi.object().required()
otherwise: Joi.object()
}),
c: Joi.object().when('a', {
is: false,
then: Joi.object().required()
otherwise: Joi.object()
}),
}
我想你正在寻找这样的东西。 Joi.when()
我可以找到一种可能的解决方案。给你了。
Joi.object({
a: Joi.boolean(),
b: Joi.object(),
c: Joi.object()
})
.required()
.when( Joi.object({a:false}).unknown(), {
then: Joi.object().or('a','b'),
otherwise: Joi.object().oxor('a','b')
})
这对我有用。