I'm just learning node with MVC pattern.I made one Validation class to validate user data.
class UserValidation {
constructor() {}
emailAddressValidation(email) {
console.log(email);
const regularExpression =
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return regularExpression.test(email.toLowerCase());
}
passwordValidation(password) {
const regularExpression =
/^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,16}$/;
}
loginValidation(req, res, next) {
const { email, password } = req.body;
console.log(email);
this.emailAddressValidation('addad');
// try {
// if (
// this.emailAddressValidation(email) &&
// this.passwordValidation(password)
// ) {
// next();
// } else {
// throw new Error(
// 'All fields are Required.email,password.Password should be alpha numeric.'
// );
// }
// } catch (error) {
// res.status(400).json({ err: 1, message: error.message });
// }
}
NewUserValidation(req, res, next) {
const { name, email, password, address, skills } = req.body;
try {
if (
name &&
this.emailAddressValidation(email) &&
this.passwordValidation(password) &&
address.length > 0 &&
skills.length > 0
) {
next();
} else {
throw new Error(
'All fields are required.Name,email,password,Address,Skills.Password should be alphanumeric.'
);
}
} catch (error) {
res.status(400).json({ err: 1, message: error.message });
}
}
}
export default new UserValidation();
Something like this and using it in my route like this
router.post('/login', UserValidation.loginValidation);
But I don't know why I got this error
TypeError: Cannot read property 'emailAddressValidation' of undefined