因此,我试图验证在特定场景下是否需要字段。像这样:
cake: Joi.object().keys({
flavor: Joi.string().max(45).required(),
price: Joi.string().length(2).required(),
topping: Joi.string().length(2).required()
})
在同一个模式中,我有:
authentication: Joi.object().keys({
password: Joi.string().max(45).required(),
login64: Joi.string().max(45).required()
})
我想做一个验证,比如:
authentication: Joi.object().keys({
password: Joi.string().max(45).required(),
login64: Joi.string().max(45).when('cake.flavor', {
is: 'chocolate',
then: Joi.required()
}})
如果蛋糕的味道是巧克力的话,我想做一个需要登录64。但似乎什么都不起作用。。。
Joy引用默认情况下是相对于当前值的父级的,在您的情况下是authentication
。您需要向上移动几个级别(...
(才能达到cake
:
login64: Joi.string().max(45).when('...cake.flavor', {
is: 'chocolate',
then: Joi.required()
})