簡體   English   中英

具有不同模式的對象數組 - JOI

[英]Array of objects with different schemas - JOI

我的應用程序上目前有以下架構:

Joi.object().keys({
  users: Joi.array().items(mySchema)
})

所以我可以獲取一組用戶並驗證他們。 但是現在我需要為每個對象使用不同的模式。

有沒有辦法我可以做這樣的事情:

Joi.object().keys({
  users: [
    Joi.object().keys(mySchemaForUserOne),
    Joi.object().keys(mySchemaForUserTwo),
    // ...
  ]
})

給你~

Joi.object().keys({
  users: Joi.array().items(
    Joi.alternatives()
      .conditional('.type', {
        switch: [{
          is: 'mySchemaForUserOne',
          then: Joi.object({ ... }),
        }, {
          is: 'mySchemaForUserTwo',
          then: Joi.object({ ... }),
        }],
      })
  )
})

您可以在此處查看文檔 => Joi 條件 API

您可以通過列出所有允許的類型來使用array.items 如果給定類型是.required()則數組中必須有匹配項: joi API 參考

users: Joi.array().items(Joi.object().keys(mySchemaForUserOne).required(),
                         Joi.object().keys(mySchemaForUserTwo).required(),
                         // ...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM