gpt4 book ai didi

javascript - 如何在 AJV 错误的错误消息中使用属性名称

转载 作者:行者123 更新时间:2023-12-04 07:31:25 27 4
gpt4 key购买 nike

我将 ajv-errors 与 ajv v8 一起使用 - 根据 docs我应该能够使用指针来引用字段名称,但我的尝试失败并出现错误,例如:Cannot access property/index 0 levels up, current level is 0

示例模式:

{
$schema: "http://json-schema.org/draft-07/schema#",
type: "object",
additionalProperties: false,
properties: {
name: { type: "string" }
},
required: ["name"],
errorMessage: {
required: 'Field ${0#} is so required'
}
}

有什么想法吗?我可能会使用绝对指针,但我不确定为了创建路径这实际上指的是什么数据。

最佳答案

0#relative json pointer为当前成员名称或数组索引。

ajv-errors 将此查找基于它正在验证的 { field: value } 数据,而不是架构中的某处。

因此在属性 errorMessage 中,您可以访问上一级的对象:

{
type: "object",
properties: {
named: {
type: "string",
errorMessage: {
type: 'Field ${0#} is so ${1}', // 'Field "named" is so {"named":2}'
},
},
},
}

它显示为 required,没有字段或值,因此没有要查找的数据。

const schema = {
type: "object",
properties: {
name: {
type: "string",
},
},
required: ["name"],
errorMessage: {
required: {
name: 'Field "name" is so ${0}', // 'Field "name" is so {}'
}
},
}

您可以像上面那样为每个字段添加明确的消息。

关于javascript - 如何在 AJV 错误的错误消息中使用属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67911770/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com