ajv-errors 在json-schema中自定义错误只 返回'应当通过 "errorMessage 关键词校验“

878 阅读1分钟

ajv-errors 在json-schema中自定义错误只 返回'应当通过 "errorMessage 关键词校验“

最近在学习json-schema的过程中遇到了一个问题,在此记录一下。

json-schema中使用ajv-errors自定义错误信息时,发现输出的错误信息都是这种形式

[
  {
    instancePath: '/bar',
    schemaPath: '#/properties/bar/errorMessage',
    keyword: 'errorMessage',
    params: { errors: [Array] },
    message: '应当通过 "errorMessage 关键词校验"'
  }
]

不管什么类型的错误都只会显示这个类型的错误。经过一番排查,发现是ajv-i18najv-errors冲突了,再输出错误信息之前,都执行了localize.zh(validate.errors)将错误信息翻译为中文,将其注释掉便能够正常输出自定义的错误信息了。

image-20220325164623408

image-20220325164645694

但是这样就不能翻译原有的错误信息了,目前是重写替换掉原来的错误信息,暂时没有找到其他办法。希望有人能解答一下。