2016-06-10 52 views
10

Ricevo una matrice di oggetti per il back-end, in cui ogni oggetto contiene un nome di servizio. La struttura si presenta come di seguitoCome convalidare la matrice di oggetti usando Joi?

[{"serviceName":"service1"}, 
{"serviceName":"service2"},..] 

quando ricevo la matrice al backend, voglio confermare che ogni oggetto nella matrice è di proprietà serviceName.

Avevo scritto il seguente codice, ma anche se ho passato un array valido, ricevo un errore di validazione.

var Joi = require('joi'); 
var service = Joi.object().keys({ 
    serviceName: Joi.string().required() 
}); 

var services = Joi.array().ordered(service); 

var test = Joi.validate([{serviceName:'service1'},{serviceName:'service2'}],services) 

Per il codice di cui sopra, io sono sempre ottenendo l'errore di convalida con il messaggio

"value" at position 1 fails because array must contain at most 1 items 

risposta

18

sostituzione ordinato con articoli funzionerà.

var Joi = require('joi'); 
var service = Joi.object().keys({ 
    serviceName: Joi.string().required() 
}); 

var services = Joi.array().items(service); 

var test = Joi.validate([{serviceName:'service1'}, {serviceName:'service2'}],services) 

per riferimento clic here