├── .gitignore ├── README.md ├── routes └── users.js ├── package.json ├── index.js └── controllers └── users.js /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Build a REST API with Node JS and Express 2 | 3 | ![REST API](https://i.ibb.co/7GWCCbp/Screenshot-2020-07-12-at-08-30-32.png) 4 | 5 | ## Introduction 6 | This is a code repository for the corresponding video tutorial. 7 | 8 | In this video, we will create a Node JS and Express JS CRUD REST API. 9 | -------------------------------------------------------------------------------- /routes/users.js: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | 3 | import { getUsers, createUser, getUser, deleteUser, updateUser } from '../controllers/users.js'; 4 | 5 | const router = express.Router(); 6 | 7 | router.get('/', getUsers); 8 | 9 | router.post('/', createUser); 10 | 11 | router.get('/:id', getUser); 12 | 13 | router.delete('/:id', deleteUser); 14 | 15 | router.patch('/:id', updateUser); 16 | 17 | export default router; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "type": "module", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1", 9 | "start": "nodemon index.js" 10 | }, 11 | "keywords": [], 12 | "author": "", 13 | "license": "ISC", 14 | "dependencies": { 15 | "express": "^4.17.1", 16 | "uuid": "^8.2.0" 17 | }, 18 | "devDependencies": { 19 | "nodemon": "^2.0.4" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import bodyParser from "body-parser"; 3 | 4 | import usersRoutes from "./routes/users.js"; 5 | 6 | const app = express(); 7 | const PORT = 5000; 8 | 9 | app.use(bodyParser.json()); 10 | 11 | app.use("/people", usersRoutes); 12 | app.get("/", (req, res) => res.send("Welcome to the Users API!")); 13 | app.all("*", (req, res) =>res.send("You've tried reaching a route that doesn't exist.")); 14 | 15 | app.listen(PORT, () =>console.log(`Server running on port: http://localhost:${PORT}`)); 16 | -------------------------------------------------------------------------------- /controllers/users.js: -------------------------------------------------------------------------------- 1 | import { v4 as uuid } from 'uuid'; 2 | 3 | let users = []; 4 | 5 | export const getUsers = (req, res) => { 6 | console.log(`Users in the database: ${users}`); 7 | 8 | res.send(users); 9 | } 10 | 11 | export const createUser = (req, res) => { 12 | const user = req.body; 13 | 14 | users.push({...user, id: uuid()}); 15 | 16 | console.log(`User [${user.username}] added to the database.`); 17 | }; 18 | 19 | export const getUser = (req, res) => { 20 | res.send(req.params.id) 21 | }; 22 | 23 | export const deleteUser = (req, res) => { 24 | console.log(`user with id ${req.params.id} has been deleted`); 25 | 26 | users = users.filter((user) => user.id !== req.params.id); 27 | }; 28 | 29 | export const updateUser = (req,res) => { 30 | const user = users.find((user) => user.id === req.params.id); 31 | 32 | user.username = req.body.username; 33 | user.age = req.body.age; 34 | 35 | console.log(`username has been updated to ${req.body.username}.age has been updated to ${req.body.age}`) 36 | }; --------------------------------------------------------------------------------