Skip to content

Instantly share code, notes, and snippets.

@Deeks900
Created October 26, 2022 16:59
Show Gist options
  • Save Deeks900/5e1b4813522efac899a783c0aa6f916c to your computer and use it in GitHub Desktop.
Save Deeks900/5e1b4813522efac899a783c0aa6f916c to your computer and use it in GitHub Desktop.
mongoose.js
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