2017-02-03 9 views
0

Я пытаюсь использовать значение массива для url. Поэтому у меня есть это как проверка Joi.Joi for Hapi не переводит один элемент массива как массив

entity: Joi.array().allow(['person','location','organization']).unique().single().default(['person']) 

Он отлично работает, если я делаю это

http://something.com/query?entity=person&person=organization 

Он видит entity как массив так, когда я распечатать значение из request

console.log(request.query.entity) // ['person', 'organization'] 

Однако, если я делаю это

http://something.com/query?entity=person 

я получаю entity как строка вместо ['person']

console.log(request.query.entity) // 'person' 

То, что я хочу, я хочу этот адрес http://something.com/query?entity=person для entity следует рассматривать как ['person']

+0

http://something.com/query?entity=['person '] – Red

ответ

2

.allow() списки допустимых значений для entity массива, но вы хотите указать тип элементов в массиве:

entity: Joi.array().unique().single().items(Joi.string().valid(['person','location','organization'])).default(['person']) 

из РЕПЛ:

> schema = Joi.object({ entity: Joi.array().unique().single().items(Joi.string().valid(['person','location','organization'])).default(['person'])}); 
> Joi.validate({entity: 'person' }, schema) 
{ error: null, value: { entity: [ 'person' ] } } 

 Смежные вопросы

  • Нет связанных вопросов^_^