2017-01-04 2 views
1

Ich versuche, eine Validierung für Array in einer POST-AnfrageJOI: allow Nullwerte in Array

Joi.array().items(Joi.string()).single().optional() 

I NULL-Werte in der Nutzlast zu ermöglichen, müssen hinzuzufügen. Kannst du mir bitte sagen, wie das geht?

+0

Können Sie any.allow (null) -Methode? Hier ist doc https://github.com/hapijs/joi/blob/v10.1.0/API.md#anyallowvalue – squiroid

+0

Ich habe versucht, beide und erlauben (null), hat nicht funktioniert. – user1110790

+0

Versuchen Sie, Nullwerte innerhalb des Arrays oder null statt des Arrays zuzulassen? – Ankh

Antwort

2

Wenn Sie das Array ermöglichen null Nutzen zu sein:

Joi.array().items(Joi.string()).allow(null); 

Wenn Sie null oder Leerzeichen Strings innerhalb des Arrays Verwendung zulassen möchten:

Joi.array().items(Joi.string().allow(null).allow('')); 

Beispiel:

const Joi = require('joi'); 

var schema = Joi.array().items(Joi.string()).allow(null); 

var arr = null; 

var result = Joi.validate(arr, schema); 

console.log(result); // {error: null} 

arr = ['1', '2']; 

result = Joi.validate(arr, schema); 

console.log(result); // {error: null} 


var insideSchema = Joi.array().items(Joi.string().allow(null).allow('')); 

var insideResult = Joi.validate(['1', null, '2'], insideSchema); 

console.log(insideResult); 
+0

Danke :), das ist perfekt – user1110790