快速验证器可选字段

express-validator optional fields

我收到了这个带有可选电子邮件的表单,我正在使用 express-validator 进行服务器端验证。

当我提交时,它应该验证然后处理数据以保存它。

routes/users.js

router.post('/save', users.validationRules(), users.save)

controllers/usersController.js

usersController.validationRules = () => {
  return [
    // ...
    // Some other validation rules that works
    // ...
    check('email', 'You need a valid Email')
        .optional()
        .isEmail(),
    // ... More validation rules that also works ...
  ]
}

usersController.save = (req, res) => {

    let errors = validationResult(req)

    console.log(errors);
}

它向我显示了错误消息,就像它忽略了 optional() 方法一样。你们知道发生了什么或者我做错了什么吗?

您可以尝试使用 .optional({ checkFalsy: true }) 来检查虚假值(例如 "", 0, false, null)。

更多信息来自 docs