Created
October 26, 2022 16:59
-
-
Save Deeks900/5e1b4813522efac899a783c0aa6f916c to your computer and use it in GitHub Desktop.
mongoose.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const express = require('express'); | |
const app = express(); | |
const mongoose = require('mongoose'); | |
app.use(express.json()); | |
app.listen(3000); | |
const userRouter = express.Router(); | |
//Provide me the base url and the mini app that I will use. | |
//base Route, RouterToUse | |
app.use('/user', userRouter); | |
userRouter | |
.route('/') | |
.get(getUsers) | |
.post(postUser) | |
.patch(updateUser) | |
.delete(deleteUser) | |
let db_link = 'mongodb+srv://admin:[email protected]/?retryWrites=true&w=majority'; | |
mongoose.connect(db_link) | |
.then((db)=>{ | |
console.log("db connected"); | |
}) | |
.catch(err=>{ | |
console.log(err); | |
}) | |
//Now creating scheme==>This is possible here only due to mongoose | |
const userSchema = mongoose.Schema({ | |
name:{ | |
type:String, | |
required:true | |
}, | |
email:{ | |
type:String, | |
required:true, | |
unique:true | |
}, | |
password:{ | |
type:String, | |
required:true, | |
minLength:6 | |
}, | |
confirmPassword:{ | |
type:String, | |
required:true, | |
minLength:6 | |
} | |
}) | |
//Now making model | |
const userModel=mongoose.model('userModel', userSchema); | |
//In mongoose.model we write name of the model(your choice) and schema this model should use | |
(async function createUser(){ | |
let user = { | |
name:"Deeksha", | |
email:"[email protected]", | |
password:"123456", | |
confirmPassword:"123456", | |
}; | |
//Now creating this user in database | |
let data = await userModel.create(user); | |
console.log(data); | |
//In data it will return the data it has put in database i.e user object itself | |
})(); | |
/***********READ REQUEST**********/ | |
async function getUsers(req, res){ | |
let allUsers = await userModel.find(); | |
res.status(200).json({message:"list of users", data:allUsers}); | |
let singleUser = await userModel.findOne({name:"Deeksha"}); | |
res.status(200).json({message:"User is", data:singleUser}); | |
} | |
/******POST REQUEST**************/ | |
async function postUser(req, res){ | |
let dataObj = req.body; | |
let user = await userModel.create(dataObj); | |
res.json({ | |
message:"data received", | |
user:user, | |
}) | |
} | |
/******PATCH REQUEST**************/ | |
async function updateUser(req, res){ | |
let dataToBeUpdated = req.body; | |
let result = await userModel.findOneAndUpdate({email:"[email protected]"}, dataToBeUpdated); | |
res.status(200).json({message:"Data Updated", result:result}); | |
} | |
/******DELETE REQUEST**************/ | |
async function deleteUser(req, res){ | |
let dataToBeDeleted = req.body; | |
let user = await userModel.findOneAndDelete(dataToBeDeleted); | |
res.json({message:"User Deleted", data:user}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment