JOI:在数组中允许空值

我正在尝试在POST请求中添加数组的validation

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

我需要在有效载荷中允许空值。 你能告诉我如何做到这一点吗?

如果你想让数组为null使用:

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

如果你想在数组中使用null或者空白string,使用:

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

例:

 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);