[nodejs] Joi对非必填的字符串字段的默认校验--总结
只能为字符串
let schema = Joi.object({ remark : Joi.string().empty("").default("").label("备注"), }); let{error, value} = schema.validate(data); let data = {remark:""} /*通过校验*/ let data = {remark:null} /*不通过校验, 提示remark必须为string类型*/
可为null时,不允许为空字符
let schema = Joi.object({ remark : Joi.string().empty(null).default("").label("备注"), }); let{error, value} = schema.validate(data); let data = {remark:""} /*不通过校验,不允许为空字符串*/ let data = {remark:null} /*通过校验*/
其中empty(null) 等同于empty()。
空字符或null都兼容
let schema = Joi.object({ remark : Joi.string().empty([null, ""]).default("").label("备注"), }); let{error, value} = schema.validate(data); let data = {}; /*通过,value.remark='' */ let data = {remark:null}; /*通过,value.remark='' */ let data = {remark:""}; /*通过,value.remark='' */