【问题标题】:joi validation each items of array object must have same valuejoi 验证数组对象的每个项目必须具有相同的值
【发布时间】:2021-12-10 19:25:50
【问题描述】:

我有这样的表单请求

{
    "data": [
        {
            "transaction": "LNS",
            "product": "XXX",
            "lot": "1",
            "liquidPrice": "0",
            "liquidId": 0,
            "limitPrice": "1780.00",
            "stopPrice": "0"
        },
        {
            "transaction": "LNS",
            "product": "XXX",
            "lot": "1",
            "liquidPrice": "0",
            "liquidId": 0,
            "limitPrice": "1780.00",
            "stopPrice": "0"
        }
    ]
}

我想检查数组数据是否大于一个对象,关键对象产品的值必须与另一个对象数组相同

【问题讨论】:

  • 你能举例说明你的要求吗?

标签: javascript node.js joi hapi


【解决方案1】:

您可以按照以下步骤检查关键对象

  1. 比较两个数组的每个元素。
  2. 返回匹配的元素。
  3. 将元素或对象添加到数组的对象中。

检查这个例子:

let Joi = require('joi')
let service = Joi.object().keys({
  serviceName: Joi.string().required(),
})

let services = Joi.array().items(service)

let test = Joi.validate(
  [{ serviceName: 'service1' }, { serviceName: 'service2' }],
  services,
)

【讨论】:

    【解决方案2】:

    您使用 Joi 验证库:

    Joi.array().items({
         "transaction": Joi.string().required(),
          ...
    }).min(1)
    

    【讨论】:

      猜你喜欢
      • 2020-02-20
      • 2020-11-23
      • 2021-10-02
      • 2017-06-04
      • 2021-02-27
      • 2016-02-16
      • 2019-08-18
      • 2021-09-06
      • 2019-01-20
      相关资源
      最近更新 更多