controllers/userController.js:

CREATE USER:

const User = require("../models/User");
exports.createUser = async (req, res) => {
  try {
    const { name, email, phone } = req.body;

    const user = await User.create({ name, email, phone });

    res.status(201).json({
      message: "User created successfully",
      user,
    });
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
};

GET ALL USERS:

exports.getUsers = async (req, res) => {
  try {
    const users = await User.find();
    res.json({
      message: "All users fetched",
      users,
    });
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
};

UPDATE USER:

exports.updateUser = async (req, res) => {
  try {
    const { id } = req.params;
    const { name, email, phone } = req.body;
    const user = await User.findByIdAndUpdate(
      id,
      { name, email, phone },
      { new: true }
    );
    res.json({
      message: "User updated successfully",
      user,
    });
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
};

DELETE USER:

exports.deleteUser = async (req, res) => {
  try {
    const { id } = req.params;
    await User.findByIdAndDelete(id);
    res.json({
      message: "User deleted successfully",
    });
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
};

routes/userRoutes.js

const express = require("express");
const router = express.Router();
const {
  createUser,
  getUsers,
  updateUser,
  deleteUser,
} = require("../controllers/userController");
router.post("/create", createUser);
router.get("/all", getUsers);
router.put("/update/:id", updateUser);
router.delete("/delete/:id", deleteUser);
module.exports = router;