【问题标题】:Express-validator: make field optional if other field value is trueExpress-validator:如果其他字段值为真,则使字段可选
【发布时间】:2021-07-23 11:48:49
【问题描述】:

如果单击Anonymous 复选框,我正在尝试将用户的Display Name 设为可选。

为此,我使用express-validator

检查以下代码:

router
  .route("/create-checkout-session")
  .post(
    [     
      check("displayName") //if isAnonymous : true than this is optional
        .matches(vars.intlRegex)
        .trim()
        .escape()
        .withMessage("Please provide a display name")
        .optional({ checkFalsy: true }),
      check("isAnonymous").isBoolean()],//isAnonymous
    checkForErrors,
    createCheckoutSession

如何在一个字段中验证另一个字段的值,并在此基础上使其成为可选。

提前致谢

【问题讨论】:

    标签: javascript node.js express express-validator


    【解决方案1】:

    您可以使用if condition 来处理这种情况。条件是当isAnonymous 不是true 然后对displayName 执行另一次检查

    router
      .route("/create-checkout-session")
      .post(
        [
          check("displayName")
            .if((value, { req }) => { // if isAnonymous : false then let's check
              return !req.body.isAnonymous;
            })
            .matches(vars.intlRegex)
            .trim()
            .escape()
            .withMessage("Please provide a display name")
          check("isAnonymous").isBoolean()
        ],
        checkForErrors,
        createCheckoutSession
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-26
      • 2020-08-07
      • 1970-01-01
      • 2020-09-07
      • 2019-03-01
      • 2020-02-29
      • 2012-04-30
      • 1970-01-01
      相关资源
      最近更新 更多