10

I am using express-validator 5.2.0 in a expressjs app. I implemented the validaiton on a form data. But it does not capture the errors and gives empty errors object. When validation runs it shows the "no error" when I submit the empty form. It should follow the error path and should display the error.

var express = require('express');
var router = express.Router();
const { check, validationResult } = require('express-validator/check');

router.post('/register', [
  check('firstName', 'First Name is required').isEmpty(),
  check('lastName', 'Last Name is required').isEmpty(),
  check('username', 'User Name is required').isEmpty(),
  check('password', 'Password is required').isEmpty()
], (req, res, next)=>{
  let errors = validationResult(req);
  if (!errors.isEmpty()) {
    console.log(errors.mapped());
    console.log("errors")
    return res.render('auth/register', { errors: errors.mapped() })
  }else{
    console.log('no errors')
    return res.render('auth/login');
  }
gustavohenke
  • 40,997
  • 14
  • 121
  • 129
Arun kumar
  • 1,041
  • 5
  • 20
  • 39

2 Answers2

25

check('firstName', 'First Name is required').isEmpty() is enforcing firstName to be empty.
You will want to change that last part to .not().isEmpty(), so that you invert the isEmpty validator.

Might also be of your interest: https://github.com/express-validator/express-validator/issues/476

gustavohenke
  • 40,997
  • 14
  • 121
  • 129
  • If I chain like: .not().isEmpty().isAlphanumeric() ... Will it revert the isAlphanumeric() part of the chain... or it reaches only the next instance of the chain? – bugthefifth Jan 09 '22 at 13:23
  • @bugthefifth No. According to the docs, it only "Negates the result of the next validator. " – Gabor Szita Jun 12 '22 at 19:42
9

In your snippet you have not added a validtor to check if a value is not empty. You could achieve this by doing:

check('firstName', 'First Name is required').notEmpty()

.notEmpty() adds a validator to check if a value is not empty; that is, a string with a length of 1 or bigger.

https://express-validator.github.io/docs/validation-chain-api.html#notempty

PJately
  • 477
  • 7
  • 7