如何为以下数据编写模式验证?

编程入门 行业动态 更新时间:2024-10-03 14:31:33

如<a href=https://www.elefans.com/category/jswz/34/1771167.html style=何为以下数据编写模式验证?"/>

如何为以下数据编写模式验证?

我一直在尝试使用 Joi 数据验证器为以下输入数据编写模式验证。

{
  "submissionReason": "new TPV required",
  "alignerInfo": {
    "name": "UPPER",
    "value": [
      {
        "name": "set",
        "value": "18/20"
      },
      {
        "name": "zenStage",
        "value": "2"
      }
    ]
  },
  "archesToTreat": "BOTH",
  "refinementGoals": [
    {
      "name": "Alignment"
    },
    {
      "name": "Close Residual Space",
      "value": [
        {
          "position": [
            "2.1",
            "2.2"
          ],
          "value": "0.5"
        },
        {
          "position": [
            "2.4",
            "2.5"
          ],
          "value": "0.7"
        }
      ]
    },
    {
      "name": "Resolve posterior Open Bite",
      "value": [
        {
          "name": "Attachments Only",
          "value": {
            "name": "teeth Attachment",
            "value": [
              "2.1",
              "2.2"
            ]
          }
        },
        {
          "name": "Add Button for elastic",
          "value": [
            "2.1",
            "2.2"
          ]
        }
      ]
    }
  ],
  "attachments": "keep all previous attachment and change",
  "iprInfo": {
    "name": "ipr not performed as prescibed",
    "value": [
      {
        "position": [
          "2.1",
          "2.2"
        ],
        "value": "0.5"
      }
    ]
  },
  "specialNotes": "Doctor Notes"
}

这就是我到目前为止所写的

Joi.object({
  submissionReason: Joi.string().required(),
  alignerInfo: Joi.object({
    name: Joi.string().required(),
    value: Joi.array().items(Joi.object({
      name: Joi.string().required(),
      value: Joi.string().required(),
    })).required()
  }).required(),
  archesToTreat: Joi.string().valid('UPPER', 'LOWER', 'BOTH').required(),
  refinementGoals: Joi.array().items(Joi.object({
    name: Joi.string().required(),
    value: Joi.array().items(Joi.object({
      position: Joi.array().items(Joi.string().required()).required(),
      value: Joi.string().required(),
      name: Joi.string().forbidden()
    })).when('name', {
      is: 'Close Residual Space',
      then: Joi.required(),
      otherwise: Joi.forbidden()
    })
  })).required(),
  attachments: Joi.string().required(),
  iprInfo: Joi.object({
    name: Joi.string().required(),
    value: Joi.array().items(Joi.object({
      position: Joi.array().items(Joi.string().required()).required(),
      value: Joi.string().required()
    })).required()
  }).required(),
  specialNotes: Joi.string().required()
})

但这不起作用,我收到以下错误,

验证错误:不允许“refinementGoals[2].value”

请帮我正确验证

回答如下:

您可以使用 express-validator,它提供适合您用例的基于模式的验证。

这里是 express-validator 模式方法的链接。 https://express-validator.github.io/docs/api/check-schema

更多推荐

如何为以下数据编写模式验证?

本文发布于:2024-05-31 02:28:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771179.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:何为   模式   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!