nodejs express-validator:仅当值存在时才验证电子邮件格式

nodejs express-validator: validate email format only if value exists

我有以下验证规则(nodejs、express-validator)

---------------------
check('email').not().isEmpty().withMessage('email is required'),
check('email').isEmail().withMessage('email not valid'),
---------------------

现在,如果我提交没有电子邮件地址值的表单,将会出现以下错误。

email is required 
email not valid

我只想在电子邮件值存在时检查电子邮件格式,这样只会出现一条错误消息,'email is required' 或 'email not valid'。

有什么建议吗?

根据文档,如果链中之前的任何验证失败,.bail() 可用于停止 运行 进一步验证。

试试这个:

check("email")
  .not()
  .isEmpty()
  .withMessage("email is required")
  .bail()
  // if email is empty, the following will not be run
  .isEmail()
  .withMessage("email not valid");