Joi:“tel”不允许为空

时间:2017-08-04 20:36:48

标签: javascript node.js validation joi

即使tel设置为可选,Joi也会返回以下错误。我们如何解决这个问题?

感谢。

  

错误:Joi失败:ValidationError:子“tel”失败,因为[“tel”不允许为空]

//Define Joi schema
const schema = {
    email: Joi.string().required().email({
        errorLevel: 64,
        minDomainAtoms: 2 
    }).min(6),
    tel: Joi.string().optional().min(10).max(10),
    password: Joi.string().required().min(8).max(64)
}

//Check inputs
const { error, value } = Joi.validate({ 
    email: args.email, 
    tel: tel, 
    password: args.password 
}, schema)   

1 个答案:

答案 0 :(得分:5)

  

...默认情况下不允许使用空字符串,必须启用它   allow('')。但是,如果要在大小写中指定默认值   空字符串你必须使用不同的模式:   Joi.string().empty('').default('default value')。这告诉了Joi   空字符串应该被视为空值(而不是   无效)以及默认使用的值。

参考:Joi v10.6.0 Documetations

在你的情况下:

tel: Joi.string().optional().allow('').min(10).max(10)