我用的是“joi”:“10.0.6”和“express-validation”:“1.0.1”在我的项目中验证一个JSON对象,我将保存在数据库中。其中一个字段是字符串,但它可以为null或空。如果字符串为空或null,如何允许字符串通过验证?
我已经试过这些案例:
dataId: Joi.string().allow(null).allow('').optional()
和
dataId: Joi.alternatives().try(Joi.string(), Joi.allow(null))
但这两个都不管用
6条答案
按热度按时间yzxexxkh1#
您也可以使用逗号分隔的列表来指定它。
请参阅Joi文档allow(value)
h4cxqtbf2#
这很简单,假设字段是数据,那么你可以强制验证为
允许空字符串通过,对于多个字符串验证,也可以这样做
允许数据字段的空值和空值都通过。
mdfafbf13#
如果你想允许空字符串 * 并将其视为undefined*(即将其转换为undefined),那么使用Joi的
empty
方法:ntjbwcob4#
Joi.string().allow('').allow(null)
应该已经工作了。我在本地测试过,效果很好。显示您的测试用例和错误?
7nbnzgx95#
如果你只是把它指定为
默认情况下,它应该是可选。
答:目前还不能自己尝试。这里的替代方案,如果以上不工作:
c3frrgcw6#
如果只需要null或空字符串,请使用以下命令: