2017-02-03 1 views
0

J'essaie d'utiliser la valeur de tableau pour l'URL. Donc j'ai ceci comme validation de Joi.Joi pour Hapi ne traduit pas un élément de tableau en tableau

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

Il fonctionne très bien si je fais

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

Il voit entity comme un tableau quand j'imprime la valeur de request

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

Cependant, si je fais ce

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

Je reçois entity sous forme de chaîne au lieu de ['person']

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

Ce que je veux, je veux que cette URL http://something.com/query?entity=person pour entity être considéré comme ['person']

+0

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

Répondre

2

.allow() répertorie les valeurs valides pour le tableau entity, mais vous voulez préciser le type des éléments du tableau:

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

de l'rempl:

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