To install the mongoose: Download Code
1 |
npm install mongoose |
To install the session:
1 |
npm install --save express-session |
routes/index.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 67 68 69 70 71 |
var express = require('express'); var router = express.Router(); var User = require('../schema/user'); var Response = require('../common/response'); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); /* REGISTER USER. */ router.post('/register', function(req, res) { var data = new User(req.body); data.save(function(err){ if(err){ console.log(err); Response.errorResponse(err.message,res); }else{ Response.successResponse('User registered successfully!',res,{}); } }) }); /* LOGIN USER. */ router.post('/login', function(req, res) { var email = req.body.email; var password = req.body.password; User.findOne({email: email, password: password}, function(err,user){ if(err){ console.log(err); Response.errorResponse(err.message,res); } if(!user){ Response.notFoundResponse('Invalid Email Id or Password!',res); }else{ req.session.user = user; Response.successResponse('User loggedin successfully!',res,user); } }) }); /* GET DASHBOARD */ router.get('/dashboard', function(req, res) { if(!req.session.user){ Response.unauthorizedRequest('You are not logged in',res); }else{ Response.successResponse('Welcome to dashboard!',res,req.session.user); } }); /* GET LOGOUT */ router.get('/logout', function(req, res) { req.session.destroy(function(err){ if(err){ console.log(err); Response.errorResponse(err.message,res); } else { Response.successResponse('User logged out successfully!',res,{}); } }); }); module.exports = router; |
MongoDB connection using mongoose with node JS:
Write the following code in app.js
1 2 3 4 5 6 7 8 9 |
// DB connection var mongoose = require('mongoose'); mongoose.Promise = global.Promise; mongoose.connect('mongodb://localhost/login_register', { useMongoClient: true }) .then(() => console.log('connection succesful')) .catch((err) => console.error(err)); // DB connection end |
Add route in app.js also:
1 2 3 4 5 6 7 |
var session = require('express-session'); app.use(session({ secret: 'djhxcvxfgshjfgjhgsjhfgakjeauytsdfy', // a secret key you can write your own resave: false, saveUninitialized: true })); |
Create schema for blog post:
schema/user.js
1 2 3 4 5 6 7 8 9 |
var mongoose = require('mongoose'); var Schema = mongoose.Schema, ObjectId = Schema.ObjectId; var User = new Schema({ name :String, email :String, password :String }); module.exports = mongoose.model('User', User); |
Response :
common/response.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
module.exports = { errorResponse: function(message,res) { return res.status(500).json({ result: {}, message: message , success:0, statusCode:500}); }, successResponse: function(message,res,data) { return res.status(200).json({ result: data, message: message , success:1, statusCode:200}); }, notFoundResponse: function(message,res) { return res.status(404).json({ result: {}, message: message , success:0, statusCode:404}); }, unauthorizedRequest: function(message,res) { return res.status(401).json({ result: {}, message: message , success:0, statusCode:401}); } } |