$ /tutorials

How to use express validator?

published · 1 minute read · express nodejs validator
How to use express validator?

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()
  },
);