
How to use express validator through full examples. I found express validator very powerful, but having a poor documentation. I decided to offer some examples that are very common and probably mainly searched.
The official documentation can be checked on Express Validator Documentation .
Validate nested object using express validator
Sometimes you need to validate an object. If the object is required that’s simple:
req.body = {
user: {
email: "[email protected]",
password: "pass"
}
}
the validator looks like:
app.post(
'/user',
// user is a required object
body('user').exists().isObject(),
// email must be an email
body('user.email').exists().isEmail(),
// password must be at least 5 chars long
body('user.password').exists().isLength({ min: 3 }),
(req, res, next) => {
// Finds the validation errors in this request and wraps them in an object with handy functions
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
next()
},
);
What happens if the user object is optional, but if present email and password are required?
app.post(
'/user',
// user is a required object
body('user').exists().isObject(),
// email must be an email
body('user.email')
.if(body('user').exists()) // check if user property exists
.exists() // then check user.email to exists
.isEmail(),
// password must be at least 5 chars long
body('user.password')
.if(body('user').exists())
.exists().isLength({ min: 3 }),
(req, res, next) => {
// Finds the validation errors in this request and wraps them in an object with handy functions
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
next()
},
);