繁体   English   中英

Joi schema.validate 自定义类型返回未定义的值

[英]Joi schema.validate a custom type return an undefined value

我正在尝试通过转换验证带有 JOI 的自定义类型。 我的 JoiType 的基本类型是Joi.array()

当我尝试

const schema = Joi.object().keys({
 attribute: Joi.array().items(Joi.string())
});

const result = schema.validate(exampleOfArray);

我发现result.value包含真实的验证值。

但是当我将类型更改为自定义类型时,不会返回该值:( result.value === undefined

这是我的自定义类型:

const customJoi = Joi.extend((joi: Root) => {
  return {
    type: 'stringArray',
    base: joi.array().items(joi.string()).meta({ baseType: 'array' }),
    coerce(value: any, helpers: CustomHelpers) {
      if (typeof value !== 'string') {
        return value;
      }
      if (!value) {
        return [];
      }
      return value.replace(/^,+|,+$/mg, '').split(',');
    }
  };
});

const schema = Joi.object().keys({
 attribute: customJoi.stringArray().items(Joi.string())
});

我找到了解决方案:

强制函数应该返回:

return { value: value };

代替 :

return value;

暂无
暂无

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

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