Джой: "тел" не может быть пустым

Джой возвращает следующую ошибку, хотя 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)
Другие вопросы по тегам