
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;