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
Post a Comment