├── controllers └── User.js ├── index.js ├── models └── UserFakeData.js ├── package.json ├── routes └── User.js └── service └── UserTable.js /controllers/User.js: -------------------------------------------------------------------------------- 1 | const { 2 | QueryListOfUsers, 3 | QueryUserById, 4 | DeleteUserById, 5 | } = require("../service/UserTable"); 6 | 7 | const GetAllUsers = (req, res) => { 8 | const userList = QueryListOfUsers(); 9 | 10 | // DO SOMETHING WITH THE USER LIST OR JUST RETURN IT 11 | return res.json(userList); 12 | }; 13 | 14 | const GetUser = (req, res) => { 15 | const userId = req.params.id; 16 | const user = QueryUserById(userId); 17 | 18 | // DO SOMETHING WITH THE USER OR JUST RETURN IT 19 | return res.json(user); 20 | }; 21 | 22 | const DeleteUser = (req, res) => { 23 | const userId = req.params.id; 24 | const user = DeleteUserById(userId); 25 | 26 | // DO SOMETHING WITH THE USER OR JUST RETURN IT 27 | return res.json(user); 28 | }; 29 | 30 | module.exports = { 31 | GetAllUsers, 32 | GetUser, 33 | DeleteUser, 34 | }; 35 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // Make express server 2 | const express = require("express"); 3 | const app = express(); 4 | const port = process.env.PORT || 8080; 5 | 6 | const userRoutes = require("./routes/user"); 7 | app.use("/user", userRoutes); 8 | 9 | app.listen(port, () => { 10 | console.log(`Server is running on port ${port}`); 11 | }); 12 | -------------------------------------------------------------------------------- /models/UserFakeData.js: -------------------------------------------------------------------------------- 1 | let USER_FAKE_DATA = [ 2 | { 3 | id: 1, 4 | name: "User 1", 5 | email: "email@email.com", 6 | password: "password", 7 | role: "admin", 8 | status: "active", 9 | }, 10 | { 11 | id: 2, 12 | name: "User 2", 13 | email: "email@email.com", 14 | password: "password", 15 | role: "user", 16 | status: "active", 17 | }, 18 | { 19 | id: 3, 20 | name: "User 3", 21 | email: "askdsjlshd@gmail.com", 22 | password: "password", 23 | role: "user", 24 | status: "active", 25 | }, 26 | ]; 27 | 28 | module.exports = { USER_FAKE_DATA }; 29 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mvcexample", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC" 11 | } 12 | -------------------------------------------------------------------------------- /routes/User.js: -------------------------------------------------------------------------------- 1 | const express = require("express"); 2 | const router = express.Router(); 3 | 4 | const { GetAllUsers, GetUser, DeleteUser } = require("../controllers/User"); 5 | 6 | router.get("/all", GetAllUsers); 7 | router.get("/byId/:id", GetUser); 8 | router.delete("/:id", DeleteUser); 9 | 10 | module.exports = router; 11 | -------------------------------------------------------------------------------- /service/UserTable.js: -------------------------------------------------------------------------------- 1 | const { USER_FAKE_DATA } = require("../models/UserFakeData"); 2 | 3 | // Returns User With Id 4 | const QueryUserById = (id) => { 5 | let user; 6 | USER_FAKE_DATA.forEach((userData) => { 7 | if (userData.id === Number(id)) { 8 | user = userData; 9 | } 10 | }); 11 | return user; 12 | }; 13 | 14 | // Returns List of Users 15 | const QueryListOfUsers = () => { 16 | return USER_FAKE_DATA; 17 | }; 18 | 19 | const DeleteUserById = (id) => { 20 | USER_FAKE_DATA.filter((user) => { 21 | return user.id !== Number(id); 22 | }); 23 | }; 24 | 25 | module.exports = { 26 | QueryUserById, 27 | QueryListOfUsers, 28 | DeleteUserById, 29 | }; 30 | --------------------------------------------------------------------------------