From 888d80413b840dfa6fc5d40aec5f69448cedf1ac Mon Sep 17 00:00:00 2001 From: squiz <wallisf@cardiff.ac.uk> Date: Mon, 20 Dec 2021 20:45:45 +0000 Subject: [PATCH] adding express validator - doesn't work --- Backend/Middleware/validator.js | 23 +++++++++++++++ Backend/node_modules/.package-lock.json | 21 ++++++++++++- Backend/package-lock.json | 39 +++++++++++++++++++++++-- Backend/package.json | 1 + Backend/routes/authRoutes.js | 4 ++- frontend/src/Components/SignUpForm.js | 1 - 6 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 Backend/Middleware/validator.js diff --git a/Backend/Middleware/validator.js b/Backend/Middleware/validator.js new file mode 100644 index 0000000..3a55fa1 --- /dev/null +++ b/Backend/Middleware/validator.js @@ -0,0 +1,23 @@ +const {check, validationResult } = require('express-validator'); + +exports.signupValidator = [ + check('firstName').not().isEmpty().trim().withMessage("First name is required"), + check('lastName').not().isEmpty().trim().withMessage("Last name is required"), + check('email').isEmail().normalizeEmail().withMessage("Last name is required"), + check('password').isLength({min: 6}).withMessage("Password msut be at least 6 characters long"), +] + +// module.exports = signupValidator + +exports.validatorResult = (req, res, next) => { + const result = validationResult(req); + const hasErrors = !result.isEmpty(); + + if (hasErrors) { + console.log('Has errors:', hasErrors) + console.log("result", result) + } + next(); +} + +// module.exports = validationResult \ No newline at end of file diff --git a/Backend/node_modules/.package-lock.json b/Backend/node_modules/.package-lock.json index 765ed65..351ed74 100644 --- a/Backend/node_modules/.package-lock.json +++ b/Backend/node_modules/.package-lock.json @@ -2378,6 +2378,18 @@ "node": ">= 0.10.0" } }, + "node_modules/express-validator": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.14.0.tgz", + "integrity": "sha512-ZWHJfnRgePp3FKRSKMtnZVnD1s8ZchWD+jSl7UMseGIqhweCo1Z9916/xXBbJAa6PrA3pUZfkOvIsHZG4ZtIMw==", + "dependencies": { + "lodash": "^4.17.21", + "validator": "^13.7.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/extend-shallow": { "version": "2.0.1", "dev": true, @@ -3235,7 +3247,6 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, "license": "MIT" }, "node_modules/loose-envify": { @@ -5036,6 +5047,14 @@ "node": ">= 0.10.0" } }, + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/Backend/package-lock.json b/Backend/package-lock.json index 976be55..344076c 100644 --- a/Backend/package-lock.json +++ b/Backend/package-lock.json @@ -13,6 +13,7 @@ "body-parser": "^1.19.0", "cors": "^2.8.5", "express": "^4.17.1", + "express-validator": "^6.14.0", "mongoose": "^6.0.13", "nodemon": "^2.0.15" }, @@ -2397,6 +2398,18 @@ "node": ">= 0.10.0" } }, + "node_modules/express-validator": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.14.0.tgz", + "integrity": "sha512-ZWHJfnRgePp3FKRSKMtnZVnD1s8ZchWD+jSl7UMseGIqhweCo1Z9916/xXBbJAa6PrA3pUZfkOvIsHZG4ZtIMw==", + "dependencies": { + "lodash": "^4.17.21", + "validator": "^13.7.0" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/extend-shallow": { "version": "2.0.1", "dev": true, @@ -3254,7 +3267,6 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, "license": "MIT" }, "node_modules/loose-envify": { @@ -5055,6 +5067,14 @@ "node": ">= 0.10.0" } }, + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -7145,6 +7165,15 @@ "vary": "~1.1.2" } }, + "express-validator": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.14.0.tgz", + "integrity": "sha512-ZWHJfnRgePp3FKRSKMtnZVnD1s8ZchWD+jSl7UMseGIqhweCo1Z9916/xXBbJAa6PrA3pUZfkOvIsHZG4ZtIMw==", + "requires": { + "lodash": "^4.17.21", + "validator": "^13.7.0" + } + }, "extend-shallow": { "version": "2.0.1", "dev": true, @@ -7752,8 +7781,7 @@ } }, "lodash": { - "version": "4.17.21", - "dev": true + "version": "4.17.21" }, "loose-envify": { "version": "1.4.0", @@ -9094,6 +9122,11 @@ "user-home": "^1.1.1" } }, + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/Backend/package.json b/Backend/package.json index 8169d5f..14a2f53 100644 --- a/Backend/package.json +++ b/Backend/package.json @@ -19,6 +19,7 @@ "body-parser": "^1.19.0", "cors": "^2.8.5", "express": "^4.17.1", + "express-validator": "^6.14.0", "mongoose": "^6.0.13", "nodemon": "^2.0.15" } diff --git a/Backend/routes/authRoutes.js b/Backend/routes/authRoutes.js index 5fc2d07..e5b0106 100644 --- a/Backend/routes/authRoutes.js +++ b/Backend/routes/authRoutes.js @@ -1,7 +1,9 @@ +import {signupValidator, validatorResult} from "../Middleware/validator"; import test from "../controllers/authControllers"; const authRoutes = (app) => { - app.route('/api/auth/signup').post(test) + app.route('/api/auth/signup', signupValidator, validatorResult) + .post(test) }; export default authRoutes; diff --git a/frontend/src/Components/SignUpForm.js b/frontend/src/Components/SignUpForm.js index 0b0cb1a..b7f9c57 100644 --- a/frontend/src/Components/SignUpForm.js +++ b/frontend/src/Components/SignUpForm.js @@ -24,7 +24,6 @@ const SignUpForm = () => { errorMsg: '' }) console.log(formData) - } const handleSubmit = (event) => { -- GitLab