Register RestFul API With File Upload In Node, Express JS, and MongoDB In Hindi

 1. index.js  / (app.js)

const express = require('express');
const mongoose = require('mongoose');
const app = express();


mongoose.connect("mongodb://127.0.0.1:27017/ECOM")

//load routes
const user_route = require("./routes/userRoute")
app.use('/api',user_route)


app.listen('3000',()=>{
    console.log("Server Connected Successfully..")
})

2. Models

const mongoose = require('mongoose')

const userSchema = mongoose.Schema({
    name:{type:String,required:true,trim:true},
    email:{type:String,required:true},
    password:{type:String,required:true},
    image:{type:String,required:true},
    mobile:{type:Number,required:true},
    type:{type:Number,required:true}
})

module.exports = mongoose.model("User",userSchema)



3. controllers

const User = require('../models/userModel')
const bcryptjs = require('bcryptjs');

const securePassword = async (password)=>{
    try{
        const passwordhash = await bcryptjs.hash(password,10)
         return passwordhash;
    }catch(error){
        res.status(400).send(error.message)
    }
}

const register_user = async (req,res)=>{
    try{
        const spassword = await securePassword(req.body.password)
         const user =   new User({
            name:req.body.name,
            email:req.body.email,
            password:spassword,
            image:req.file.filename,
            mobile:req.body.mobile,
            type:req.body.type,
        })
         //Match E-mail ---
        const userData =    await User.findOne({email:req.body.email});
        if(userData){
            res.status(200).send({success:false,msg:"The Email is already Exists"});
        }else{
              const userRegisterData =    await user.save()
              res.status(200).send({success:true,msg:userRegisterData})
        }
         
       
    }catch(error){
        res.status(400).send(error.message)
    }
}

module.exports = {  register_user

}

4.routes

const express = require('express');
const user_route = express();

const bodyParser = require('body-parser');
user_route.use(bodyParser.json());
user_route.use(bodyParser.urlencoded({extended:true}));

const multer = require('multer');
const path = require('path');

user_route.use(express.static('public'));

const storage = multer.diskStorage({
    destination:function(req,file,cb){
        cb(null,path.join(__dirname,'../public/userImages'),function(error,success){
            if(error) throw error
        });
    },
    filename:function(req,file,cb){
       const name =  Date.now() +'-'+ file.originalname;
       cb(null, name , function(error1,success1){
        if(error1) throw error1
       })
    }

});

const upload = multer({storage:storage});

const userController = require("../controllers/userControllers");

user_route.post('/register',upload.single('image'),userController.register_user);

module.exports = user_route;

5. Pakages.json

{
  "name": "api",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.20.1",
    "express": "^4.18.2",
    "mongoose": "^6.8.0",
    "multer": "^1.4.5-lts.1"
  }
}

Comments

Popular posts from this blog

My Sql Query ..

Interview question laravel.