我有一个返回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();
}为什么我的第一个函数不起作用?我怎么才能让它工作呢?
发布于 2021-10-28 13:24:05
joi函数返回this实例,您需要将其存储到变量中。我是builder
function myString(required) {
let schema = Joi.string();
if (required) {
schema = schema.required();
}
return schema;
}https://stackoverflow.com/questions/69754805
复制相似问题