验证 AdonisJs 5 中的对象数组
Validate array of objects in AdonisJs 5
我正在使用 AdonisJs 5 开发一个 RestAPI,我正在尝试验证请求主体是一个对象数组,我不知道它可能有什么属性包含所以我不想指定任何属性。
有效载荷是这样的
{
"gap": [
{
"1": "small"
},
{
"2": "x"
},
{
"a": "king"
}
]
}
其中键代表业务逻辑。
我尝试了几种方法,但都不起作用
- 通过向成员函数添加空对象
public schema = schema.create({
gap: schema.array.optional().members(schema.object().members({})),
})
但结果是一个空对象数组,因为 adonis 忽略了验证器模式中未提供的任何额外数据
2. 只传递 schema.object 而没有成员函数
public schema = schema.create({
gap: schema.array.optional().members(schema.object()),
})
但这会导致错误
有 .anyMembers() 选项。
在这里阅读:https://docs.adonisjs.com/reference/validator/schema/object#accept-any-elements
所以你的解决方案是:
public schema = schema.create({
gap: schema.array.optional().members(schema.object().anyMembers()),
})
我正在使用 AdonisJs 5 开发一个 RestAPI,我正在尝试验证请求主体是一个对象数组,我不知道它可能有什么属性包含所以我不想指定任何属性。 有效载荷是这样的
{
"gap": [
{
"1": "small"
},
{
"2": "x"
},
{
"a": "king"
}
]
}
其中键代表业务逻辑。 我尝试了几种方法,但都不起作用
- 通过向成员函数添加空对象
public schema = schema.create({
gap: schema.array.optional().members(schema.object().members({})),
})
但结果是一个空对象数组,因为 adonis 忽略了验证器模式中未提供的任何额外数据 2. 只传递 schema.object 而没有成员函数
public schema = schema.create({
gap: schema.array.optional().members(schema.object()),
})
但这会导致错误
有 .anyMembers() 选项。
在这里阅读:https://docs.adonisjs.com/reference/validator/schema/object#accept-any-elements
所以你的解决方案是:
public schema = schema.create({
gap: schema.array.optional().members(schema.object().anyMembers()),
})