首页 > 解决方案 > 在猫鼬中查找特定字段并使用快速验证器验证它的值

问题描述

我有一个 mongoose 模式,它的数组包含一个枚举字段和每个枚举的值,例如,我想检查枚举是否为 nationalId,检查它的值字段。如何使用 express-validator 执行此操作这是我的架构:

fields: {
  type: [
    {
      _id: false,
      name: {
        type: String,
        enum: [
          "name",
          "nationalId"
        ],
        required: true,
      },
      value: {
        type: String,
        default: "",
      },
    },
  ],
},

这是邮递员 json 请求:

{
    "fields": [
        {
            "name": "nationalId",
            "value": "454643"
        },
}

这是我当前的验证但不起作用(我将它用作中间件并将其放在我的路由中的端点之前):

exports.isNationalNumber = body("fields.*.name.nationalId")
.exists()
.withMessage({ message: "not valid", errorCode: "1" })
.bail()
.trim()
.matches(/^\d{10}$/)
.withMessage({ message: "not valid", errorCode: "2" })
.bail();

我想检查字段名称是否为“nationalId”检查它的值。

标签: javascriptnode.jsexpressmongooseexpress-validator

解决方案


推荐阅读