Joi 条件 .required()
Joi conditional .required()
我有一个 returns 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();
}
为什么我的第一个功能不起作用?我怎样才能让它发挥作用?
joi
函数 return this
您需要将其存储到变量的实例。这是 builder
function myString(required) {
let schema = Joi.string();
if (required) {
schema = schema.required();
}
return schema;
}
我有一个 returns 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();
}
为什么我的第一个功能不起作用?我怎样才能让它发挥作用?
joi
函数 return this
您需要将其存储到变量的实例。这是 builder
function myString(required) {
let schema = Joi.string();
if (required) {
schema = schema.required();
}
return schema;
}