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 

그것은 내가이

을한다면 나는, 그러나 request

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

에서 값을 출력 이렇게하면 배열로 entity을 본다

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

난 내가 entity에 대한 http://something.com/query?entity=person['person']

+0

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

답변

2

.allow() 나열 entity 배열에 대한 유효한 값으로 볼 수하기 위해 URL을 원하는 것입니다 원하는 것은 대신 ['person']

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

의 문자열로 entity를 얻을 수 있지만, 당신이 원하는 배열에서 항목의 유형을 지정하십시오 REPL에서

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' ] } }