Reputation: 2691
I have following validation rules (nodejs, express-validator)
---------------------
check('email').not().isEmpty().withMessage('email is required'),
check('email').isEmail().withMessage('email not valid'),
---------------------
Now if I submit the form without an email address value it will have the following errors.
email is required
email not valid
I want to check email format only if email value exists, so that only one error message will be there, either 'email is required' or 'email not valid'.
any suggestions?
Upvotes: 3
Views: 2841
Reputation: 13662
According to the documentation, .bail()
can be used to stop running further validations if any of the previous ones in the chain have failed.
Try this:
check("email")
.not()
.isEmpty()
.withMessage("email is required")
.bail()
// if email is empty, the following will not be run
.isEmail()
.withMessage("email not valid");
Upvotes: 3