Javascript Joi schema.validate自定义类型返回未定义的值
我正在尝试使用JOI all和conversion验证自定义类型。 my JoiType的基本类型是aJavascript Joi schema.validate自定义类型返回未定义的值,javascript,node.js,hapijs,joi,hapi,Javascript,Node.js,Hapijs,Joi,Hapi,我正在尝试使用JOI all和conversion验证自定义类型。 my JoiType的基本类型是aJoi.array() 当我试图 const schema = Joi.object().keys({ attribute: Joi.array().items(Joi.string()) }); const result = schema.validate(exampleOfArray); 我发现result.value包含实际的验证值 但是,当我将类型更改为自定义类型时,不会返回值:(
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;
我找到了解决办法: 强制函数应返回:
return { value: value };
而不是:
return value;