Джой: "тел" не может быть пустым
Джой возвращает следующую ошибку, хотя tel
устанавливается как необязательный. Как мы это исправим?
Благодарю.
Ошибка: Joi Failed: 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 ответ
Решение
... пустые строки не разрешены по умолчанию и должны быть включены с
allow('')
, Однако, если вы хотите указать значение по умолчанию в случае пустой строки, вы должны использовать другой шаблон:Joi.string().empty('').default('default value')
, Это говорит Джои, что пустая строка должна рассматриваться как пустое значение (а не как недействительное) и какое значение использовать по умолчанию.
Ссылка: Joi v10.6.0 Документация
В твоем случае:
tel: Joi.string().optional().allow('').min(10).max(10)