繁体   English   中英

Joi 有条件的 .required()

[英]Joi conditional .required()

我有一个返回 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()Joi.string().required() 所以,以下不符合我的需要:

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

为什么我的第一个功能不起作用? 我怎样才能让它工作?

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

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

  if (required) {
    schema = schema.required();
  }

  return schema;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM