JOI:允许数组中的空值

新手上路,请多包涵

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

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

我需要在有效载荷中允许空值。你能告诉我这是怎么做到的吗?

原文由 user1110790 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 993
2 个回答

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

 Joi.array().items(Joi.string()).allow(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);

原文由 Cuthbert 发布,翻译遵循 CC BY-SA 3.0 许可协议

非常简短的答案是:

 name: Joi.string().allow(null)

原文由 B.Habibzadeh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题