2014-09-09 3 views
1

У меня есть поле массива, который я хотел бы убедиться, что он имеет, по меньшей мере, один элемент, когда условие:дзёи проверки: Установить минимальную длину массива условно

genre:Joi.array().includes(data.genres).when('field'{is:'fieldValue',then:Joi.required()}) 

Если я изменил «то» поле с Joi.required(). min (1), жалуется.

Могу ли я сделать это с Джо?

ответ

2

Вы не упомянули, что сообщение об ошибке было, но тестирование кода я полагаю, вы получили:

TypeError: Object [object Object] has no method 'min'

Эта ошибка возникает из-за min() является функцией типа массива. В части then: вы создаете новый объект проверки, и Joi не знает, что вы ожидаете массив. Таким образом, вы должны указать его:

then: Joi.array().min(1).required() 

Полный код валидации:

genre: Joi.array().includes(data.genres).when('field', {is: 'fieldValue', then: Joi.array().min(1).required()})