javascript - Express-validator:如果其他字段值为 true,则使字段可选

标签 javascript node.js express express-validator

如果单击匿名复选框,我会尝试将用户的显示名称设置为可选。

为此,我使用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

如何在一个字段中验证另一个字段的值,并据此将其设为可选。

提前致谢

最佳答案

您可以使用 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

关于javascript - Express-validator:如果其他字段值为 true,则使字段可选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68498675/

相关文章:

node.js - 如何使用 node.js、Express 和 knox 将文件从浏览器上传到 Amazon S3?

javascript - 在单击函数条件语句中调用时,函数值未定义

javascript - 具有多个下拉条件的 Angular 自定义过滤器

javascript - 在 php 中刷新时,变量在上一页的查询字符串中丢失

node.js - 运行 “First Electron App”不会显示版本吗?

mysql - sequelize 是否具有相当于 mysqls 的替换功能?

javascript - 允许在运行时更改源代码是否会使代码容易受到 XSS 攻击?

node.js - 如何在 ReactJs 项目中使用 Esri Arcgis Map?

node.js - 在 Express 中监听 UDP 消息

javascript - 如何刷新 Firebase session Cookie