Mini-CRUD-app/controllers/userController.js
2025-06-03 11:51:54 +05:30

70 lines
1.6 KiB
JavaScript

const User = require("../models/User");
//POST
const createUser = async (req, res) => {
try {
const user = await User.create(req.body);
res.status(201).json(user);
} catch (err) {
res.status(500).json({ error: err.message });
}
};
//GET
//if i use findOne then it fetching the first match data
const getUsers = async (req, res) => {
try {
const users = await User.find();
res.status(200).json(users);
} catch (err) {
res.status(500).json({ error: err.message });
}
};
//GET by id
const getUserById = async (req,res)=>{
try {
const user = await User.findById(req.params.id);
if(!user){
return res.status(404).json({error: "User not found"})
}
res.status(200).json(user);
} catch (err) {
res.status(500).json({ error: err.message });
}
};
//UPDATE
const updateUser = async(req,res)=>{
try {
const user = await User.findByIdAndUpdate(req.params.id,req.body,{
new:true,//return updated document
});
if(!user) return res.status(404).json({message: "User Not Found."})
res.status(200).json(user);
} catch (err) {
res.status(500).json({ error: err.message });
}
};
//DELETE
const deleteUser= async(req,res)=>{
try {
const user = await User.findByIdAndDelete(req.params.id);
if(!user){
return res.status(404).json({message: "User not found"});
}
res.status(200).json({message:"success"})
} catch (err) {
res.status(500).json({ error: err.message });
}
}
module.exports = {
createUser,
getUsers,
getUserById,
updateUser,
deleteUser
};