我有一个表单,需要用户的电子邮件和密码。我有快速验证器,检查用户的电子邮件和密码是否为空,如果电子邮件是一个有效的电子邮件设置验证如下所示。
const loginSchema = [
body("email")
.isEmail()
.withMessage("email must contain a valid email address")
.notEmpty()
.withMessage("please enter email"),
body("password").notEmpty().withMessage("please enter password"),
];
在postman中测试时,如果用户没有输入email和密码就提交表单,它会显示所有错误消息。如何使用express validator的条件,使isEmail()withMessage仅在请求正文email不为空时才被调用?
1条答案
按热度按时间hkmswyz61#
来自快速验证器文档:
如果选项onlyFirstError设置为true,则只包括每个字段的第一个错误。
所以你基本上要这样做
或者,您可以使用以下命令将请求中的错误Map为从字段路径到该字段的第一个错误: