簡體   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