验证 AdonisJs 5 中的对象数组

Validate array of objects in AdonisJs 5

我正在使用 AdonisJs 5 开发一个 RestAPI,我正在尝试验证请求主体是一个对象数组,我不知道它可能有什么属性包含所以我不想指定任何属性。 有效载荷是这样的

{
    "gap": [
        {
            "1": "small"
        },
        {
            "2": "x"
        },
        {
            "a": "king" 
        }
    ]

}

其中键代表业务逻辑。 我尝试了几种方法,但都不起作用

  1. 通过向成员函数添加空对象
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()),
  })