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"