簡體   English   中英

如何使用 Joi 驗證具有未知鍵的對象並檢查值是否為標量類型?

[英]How can I use Joi to validate an object with unknown keys and check that the values are scalar types?

我有一個對象,我無法提前確定其鍵。 如何使用 Joi 為值強制執行特定類型(標量類型)?

具有未知鍵的示例對象:

const obj = {
  x: "foo",
  y: 7,
  z: true,
  p: { m: 1, n: false },
  q: [ "a", "b", "c" ]
}

由於我只想接受scalar類型,這意味着鍵pq應該會導致驗證失敗。

我怎樣才能用 Joi 實現這一目標?

到目前為止,我已經嘗試過這個,但它允許像['a', 'b', 'c']這樣的非標量值:

Joi.object().pattern(Joi.string(), Joi.boolean(), Joi.number())

得到它的工作

const validationSchema = Joi.object().pattern(
  Joi.string(),
  Joi.alternatives().try(Joi.number(), Joi.string(), Joi.boolean())
);

查看沙箱

https://codesandbox.io/s/jovial-paper-hqiun

暫無
暫無

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

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