【问题标题】:Joi conditional .required()Joi 条件 .required()
【发布时间】:2021-10-28 21:24:05
【问题描述】:

我有一个返回 Joi 模式的函数。该架构中的字符串可以是必需的,也可以是可选的。

这是我的功能:

function myString(required) {
  const schema = Joi.string();

  if (required) schema.required();

  return schema;
}

呼叫myString(true) 不适用于.required()。但是,如果我的函数定义为:

function myString() {
  const schema = Joi.string().required();

  return schema;
}

我想要一个函数来应用条件 .required()(和其他验证),所以我不会浪费时间在任何地方写 Joi.string()Joi.string().required()。 因此,以下内容不符合我的需要:

function myString(required) {
  return required ? Joi.string().required() : Joi.string();
}

为什么我的第一个函数不起作用?我怎样才能让它发挥作用?

【问题讨论】:

    标签: javascript joi


    【解决方案1】:

    joi 函数返回 this 实例,您需要将其存储到变量中。我是builder

    function myString(required) {
      let schema = Joi.string();
    
      if (required) {
        schema = schema.required();
      }
    
      return schema;
    }
    

    【讨论】:

    • 对了!非常感谢!!
    猜你喜欢
    • 2019-06-25
    • 1970-01-01
    • 2014-12-18
    • 2018-06-09
    • 2020-05-08
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多