我正在尝试在POST请求中添加对数组的验证

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

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

最佳答案

如果要允许数组为空,请使用:

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

如果要允许在数组内部使用null或空格字符串,请使用:
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);

关于javascript - JOI :allow null values in array,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41470251/

10-11 08:27