diff --git a/.gitignore b/.gitignore index b512c09..a2e04e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -node_modules \ No newline at end of file +node_modules + +.env \ No newline at end of file diff --git a/constant.js b/constant.js new file mode 100644 index 0000000..7c43dfe --- /dev/null +++ b/constant.js @@ -0,0 +1,5 @@ +const REGISTER_URL = "/user/register" + +module.exports = { + REGISTER_URL +} \ No newline at end of file diff --git a/controllers/userController.js b/controllers/userController.js index 780c3c7..443e82f 100644 --- a/controllers/userController.js +++ b/controllers/userController.js @@ -3,16 +3,11 @@ const bcrypt = require("bcryptjs"); - const register_user= async (req,res)=>{ try { const salt = 10; const spassword = await bcrypt.hash(req.body.password,salt); - const userData=await users.findOne({email:req.body.email}) - // console.log(userData,"=="); - if(userData){ - return res.status(209).send({success:false,msg:"Email already exist"}) - }else{ + let user = new users({ username:req.body.username, firstname:req.body.firstname, @@ -25,9 +20,9 @@ const register_user= async (req,res)=>{ }); const user_data = await user.save(); return res.status(200).send({success:true,data:user_data}) - } + } catch (error) { - res.status(400).send(error.message) + res.status(400).send({success:false,error:error.message}) } } diff --git a/index.js b/index.js index e6ff7dd..e7a8534 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,4 @@ +require("dotenv").config() const express = require("express"); const app = express(); @@ -5,9 +6,9 @@ require("./dbconnection"); app.use(express.json()) const userRoute = require("./routes/register"); -app.use("/user/register", userRoute) +app.use("/user", userRoute) -app.listen(3005,()=>{ +app.listen(process.env.PORT_NO,()=>{ console.log("server is running on port 3005"); }) \ No newline at end of file diff --git a/middleware/mid_register.js b/middleware/mid_register.js new file mode 100644 index 0000000..6ca4436 --- /dev/null +++ b/middleware/mid_register.js @@ -0,0 +1,13 @@ +const mongoose = require("mongoose"); +const users = mongoose.model("users" ); +const REG_MIDDLE=async (req,res,next) => { + const userData=await users.findOne({email:req.body.email}) + + if(userData){ + return res.status(409).send({success:false,msg:"Email already exist"}) + }else{ + next(); + } +} + +module.exports=REG_MIDDLE diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index acdca54..5eda5d6 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -383,6 +383,17 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", diff --git a/package-lock.json b/package-lock.json index e18ea03..d0d5b14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "bcrypt": "^5.1.1", "bcryptjs": "^2.4.3", + "dotenv": "^16.3.1", "express": "^4.18.2", "mongoose": "^7.6.3", "nodemon": "^3.0.1" @@ -395,6 +396,17 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2063,6 +2075,11 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" }, + "dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==" + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", diff --git a/package.json b/package.json index 001f6e8..2f4a3a7 100644 --- a/package.json +++ b/package.json @@ -5,13 +5,14 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "dev":"nodemon index.js" + "dev": "nodemon index.js" }, "author": "", "license": "ISC", "dependencies": { "bcrypt": "^5.1.1", "bcryptjs": "^2.4.3", + "dotenv": "^16.3.1", "express": "^4.18.2", "mongoose": "^7.6.3", "nodemon": "^3.0.1" diff --git a/routes/register.js b/routes/register.js index 3fcc9bc..9e8bc3a 100644 --- a/routes/register.js +++ b/routes/register.js @@ -1,8 +1,11 @@ const express = require("express"); +const register_user = require("../controllers/userController"); const router = express.Router(); -const Controller = require("../controllers/userController"); -router.post("/",Controller); + +const mid_register = require("../middleware/mid_register"); + +router.post("/register",mid_register,register_user); module.exports=router; \ No newline at end of file