Joi: "tel" 不允许为空
Joi: "tel" is not allowed to be empty
即使 tel
设置为 可选,Joi 仍返回以下错误。我们如何解决这个问题?
谢谢。
Error: Joi Failed: ValidationError: child "tel" fails because ["tel" is not allowed to be empty]
//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)
...empty strings are not allowed by default and must be enabled with
allow('')
. However, if you want to specify a default value in case
of empty string you have to use a different pattern:
Joi.string().empty('').default('default value')
. This tells Joi that
the empty string should be considered as an empty value (instead of
invalid) and which value to use as default.
你的情况:
tel: Joi.string().optional().allow('').min(10).max(10)
即使 tel
设置为 可选,Joi 仍返回以下错误。我们如何解决这个问题?
谢谢。
Error: Joi Failed: ValidationError: child "tel" fails because ["tel" is not allowed to be empty]
//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)
...empty strings are not allowed by default and must be enabled with
allow('')
. However, if you want to specify a default value in case of empty string you have to use a different pattern:Joi.string().empty('').default('default value')
. This tells Joi that the empty string should be considered as an empty value (instead of invalid) and which value to use as default.
你的情况:
tel: Joi.string().optional().allow('').min(10).max(10)