This tutorial will teach you how to make a Registration Login form Application using Node JS and MongoDB using MVC architecture. we have created routes,userControler,userServices,useModel.
First you have to Create the Project
1 | npm init |
After run the command package.json file has been created.
First Step Create the page which is server.js which use to connect the port and databases.
server.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | const express = require('express') const app = express(); const mongoose = require('mongoose'); var routes = require('./routes/routes'); mongoose.set('strictQuery', false); mongoose.connect("mongodb://localhost:27017/gbs",{useNewUrlParser: true, useUnifiedTopology: true },function checkDb(error) { if(error) { console.log("Error Connecting to DB"); } else { console.log("successfully Connected to DB"); } }); app.listen(9002,function check(error) { if(error) console.log("Error....!!!!"); else console.log("Started....!!!!"); }); app.use(express.json()); app.use(routes); |
routes.js
1 2 3 4 5 6 7 8 9 10 | var express = require('express'); var userController = require('../src/user/userController'); const router = express.Router(); router.route('/user/login').post(userController.loginUserControllerFn); router.route('/user/create').post(userController.createUserControllerFn); module.exports = router; |
userControler.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | var userService = require('./userServices'); var createUserControllerFn = async (req, res) => { try { console.log(req.body); var status = await userService.createUserDBService(req.body); console.log(status); if (status) { res.send({ "status": true, "message": "User created successfully" }); } else { res.send({ "status": false, "message": "Error creating user" }); } } catch(err) { console.log(err); } } var loginUserControllerFn = async (req, res) => { var result = null; try { result = await userService.loginuserDBService(req.body); if (result.status) { res.send({ "status": true, "message": result.msg }); } else { res.send({ "status": false, "message": result.msg }); } } catch (error) { console.log(error); res.send({ "status": false, "message": error.msg }); } } module.exports = { createUserControllerFn, loginUserControllerFn }; |
userServices.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | var userModel = require('./userModel'); var key = '123456789trytryrtyr'; var encryptor = require('simple-encryptor')(key); module.exports.createUserDBService = (userDetails) => { return new Promise(function myFn(resolve, reject) { var userModelData = new userModel(); userModelData.firstname = userDetails.firstname; userModelData.lastname = userDetails.lastname; userModelData.email = userDetails.email; userModelData.password = userDetails.password; var encrypted = encryptor.encrypt(userDetails.password); userModelData.password = encrypted; userModelData.save(function resultHandle(error, result) { if (error) { reject(false); } else { resolve(true); } }); }); } module.exports.loginuserDBService = (employeeDetails)=> { return new Promise(function myFn(resolve, reject) { userModel.findOne({ email: employeeDetails.email},function getresult(errorvalue, result) { if(errorvalue) { reject({status: false, msg: "Invaild Data"}); } else { if(result !=undefined && result !=null) { var decrypted = encryptor.decrypt(result.password); if(decrypted== employeeDetails.password) { resolve({status: true,msg: "Employee Validated Successfully"}); } else { reject({status: false,msg: "Employee Validated failed"}); } } else { reject({status: false,msg: "Invaild Employee Detailssss"}); } } }); }); } |
userModel.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | var mongoose = require('mongoose'); var Schema = mongoose.Schema; var userSchema = new Schema({ firstname: { type: String, required: true }, lastname: { type: String, required: true }, email: { type: String, required: true }, password: { type: String, required: true } }); module.exports = mongoose.model('employee', userSchema); |
i have attached the video link below. which will do this tutorials step by step.