TypeError: Cannot set properties of undefined (setting 'message') in Express Validator

37 views Asked by At

Getting this error:

\node_modules\express-validator\src\chain\validators-impl.js:25 this.lastValidator.message = message; ^

TypeError: Cannot set properties of undefined (setting 'message')

TypeError: Cannot set properties of undefined (setting 'message') in Express Validator this.lastValidator.message = message;

user.validators.js

const { check, body } = require('express-validator');

const signUp = [
  check('username').exists().withMessage('Username is Required'),
  check('email').isEmail().normalizeEmail().withMessage('Email is Required'),
  check('password').isLength({ min: 8 }).withMessage('Minimum 8 charcters required'),
]

const loginCheck = [
  check('email').isEmail().normalizeEmail().withMessage('Email is Required'),
  check('password').isLength(8).withMessage('Minimum 8 charcters required'),
]

const forgotEmail = check('email').isEmail().normalizeEmail().withMessage('Email is Required')


const checkPass = [
  check('password').isLength({ min: 8 }).withMessage('Minimum 8 charcters required'),
  check('newPassword').isLength({ min: 8 }).withMessage('Minimum 8 charcters required'),
]


module.exports = {
  signUp,
  loginCheck,
  forgotEmail,
  checkPass
}

validate.js:

const { validationResult } = require('express-validator');

const validate = async (req, res, next) => {
  try {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    } else {
      next();
    }
  } catch (e) {
    console.log(e);
    return res.status(400).json({ message: 'something went wrong!' });
  }
};

and user.routes.js:

const express = require('express')
const router = express.Router();
const eventRoutes = require('./event.routes')
const { validationResult } = require('express-validator');
const auth = require('./../middleware/auth.middleware')
const userValidate = require('./../validator/user.validators')

const controller = require('../controllers/users.controllers');
const validate = require('../validator/validate');

router.post('/register', userValidate.signUp, validate, controller.register)

router.post('/login', userValidate.loginCheck, validate, controller.login)

router.post('/logout', auth, controller.logout)

router.put('/change-password', auth, userValidate.checkPass, validate, controller.changePassword)

router.put('/reset-password', controller.resetPassword)

router.post('/forgot-password', userValidate.forgotEmail, validate, controller.forgotPassword)

router.get('/gettoken', auth, controller.checkToken)

router.use('/events', auth, eventRoutes)

module.exports = router;

I have similar routes, controllers & validators for "Event" & "InvitedUsers"

0

There are 0 answers