[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='' */

  

posted @ 2020-08-08 12:24  dilex  阅读(1793)  评论(0编辑  收藏  举报