Server.js:

const express = require("express");
const cors = require("cors");

const userRoutes = require("./routes/userRoutes");

const app = express();

app.use(cors());
app.use(express.json());

app.use("/api/users", userRoutes);

app.listen(3000, () => {
  console.log("Server running on port 3000");
});

models/userModel.js:

let users = [];
let id = 1;

const getUsers = () => users;

const getUserById = (userId) => {
  return users.find(u => u.id == userId);
};

const createUser = (name, email) => {
  const user = { id: id++, name, email };
  users.push(user);
  return user;
};

const updateUser = (userId, name, email) => {
  const user = users.find(u => u.id == userId);
  if (user) {
    user.name = name;
    user.email = email;
  }
  return user;
};

const deleteUser = (userId) => {
  users = users.filter(u => u.id != userId);
};

module.exports = {
  getUsers,
  getUserById,
  createUser,
  updateUser,
  deleteUser
};

controllers/userController.js:

const userModel = require("../models/userModel");

exports.getUsers = (req, res) => {
  res.json(userModel.getUsers());
};

exports.getUser = (req, res) => {
  const user = userModel.getUserById(req.params.id);

  if (!user) {
    return res.status(404).json({ message: "User not found" });
  }

  res.json(user);
};

exports.createUser = (req, res) => {
  const { name, email } = req.body;

  const user = userModel.createUser(name, email);

  res.json({
    message: "User created",
    user
  });
};

exports.updateUser = (req, res) => {
  const { name, email } = req.body;

  const user = userModel.updateUser(req.params.id, name, email);

  if (!user) {
    return res.status(404).json({ message: "User not found" });
  }

  res.json({
    message: "User updated",
    user
  });
};

exports.deleteUser = (req, res) => {
  userModel.deleteUser(req.params.id);

  res.json({
    message: "User deleted"
  });
};

routes/userRoutes.js:

const express = require("express");

const router = express.Router();

const userController = require("../controllers/userController");

router.get("/", userController.getUsers);

router.get("/:id", userController.getUser);

router.post("/", userController.createUser);

router.put("/:id", userController.updateUser);

router.delete("/:id", userController.deleteUser);

module.exports = router;