Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Joi schema.validate自定义类型返回未定义的值_Javascript_Node.js_Hapijs_Joi_Hapi - Fatal编程技术网

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

Javascript 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 all和conversion验证自定义类型。 my JoiType的基本类型是a
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;