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-i18n和ajv-errors冲突了,再输出错误信息之前,都执行了localize.zh(validate.errors)将错误信息翻译为中文,将其注释掉便能够正常输出自定义的错误信息了。
但是这样就不能翻译原有的错误信息了,目前是重写替换掉原来的错误信息,暂时没有找到其他办法。希望有人能解答一下。