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

Joi возвращает следующую ошибку, хотя tel установлен как необязательный. Как это исправить?

Спасибо.

Ошибка: ошибка 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)   

person    schedule 04.08.2017    source источник
comment
Спасибо. Это прекрасно решило проблему.   -  person Cazineer    schedule 05.08.2017


Ответы (1)


... пустые строки не разрешены по умолчанию и должны быть включены с помощью allow(''). Однако, если вы хотите указать значение по умолчанию в случае пустой строки, вы должны использовать другой шаблон: Joi.string().empty('').default('default value'). Это сообщает Joi, что пустая строка должна рассматриваться как пустое значение (вместо недопустимого) и какое значение использовать по умолчанию.

Ссылка: Документация по Joi v10.6.0

В твоем случае:

tel: Joi.string().optional().allow('').min(10).max(10)
person Kayvan Mazaheri    schedule 04.08.2017