在Joi验证器中,可以使用when
方法来基于对象外部的字段进行条件验证。when
方法接受两个参数:条件和验证规则。条件可以是一个Joi验证器,也可以是一个函数,用于根据对象的值来确定是否应用验证规则。
下面是一个示例,演示如何在Joi验证器中基于对象外部的字段进行条件验证:
const Joi = require('joi');
const schema = Joi.object({
type: Joi.string().valid('admin', 'user').required(),
isAdmin: Joi.boolean(),
email: Joi.string().email().when('type', {
is: 'admin',
then: Joi.required(),
otherwise: Joi.optional()
})
});
const data = {
type: 'admin',
isAdmin: true,
email: 'admin@example.com'
};
const result = schema.validate(data);
console.log(result);
在上面的示例中,我们定义了一个包含type
、isAdmin
和email
字段的验证规则。根据type
字段的值,我们决定是否需要验证email
字段。如果type
为admin
,则email
字段是必需的,否则是可选的。
这里使用了when
方法来基于type
字段进行条件验证。当type
为admin
时,email
字段需要通过Joi.required()
进行验证,否则通过Joi.optional()
进行验证。
以上是一个简单的示例,你可以根据实际需求和验证规则进行调整。如果你想了解更多关于Joi验证器的信息,可以参考腾讯云的Joi验证器相关产品:Joi验证器。
领取专属 10元无门槛券
手把手带您无忧上云