Skip to content

aerial33/n-express-route-controller

Repository files navigation

NODEJS REST API | CRUD

Build a simple REST API with NodeJS and Express

source from JavaScript Mastery

Write the CRUD actions we can do on users:

See all users
See details about one user
Create a user
Update a user
Destroy a user

Launch a Node server and go on localhost:3000/users to implement each user story with POSTMAN.

  1. Read All Users
// routes/users.js
import { getUsers } from '../controllers/users.js'
const router = express.Router()

// all routes in here are starting with /users
router.get('/', getUsers)

export default router
// controllers/users.js
export const getUsers = (req, res) => {
  res.send(users)
}
  1. Read One User
// routes/users.js
import { getUser } from '../controllers/users.js'
const router = express.Router()

router.get('/:id', getUser)

export default router
// controllers/users.js

export const getUser = (req, res) => {
  const { id } = req.params

  const foundUser = users.find((user) => user.id === id)

  res.send(foundUser)
}
  1. Create User
// routes/users.js
import { createUser } from '../controllers/users.js'
const router = express.Router()

router.post('/:id', createUser)

export default router
// controllers/users.js
import { v4 as uuidv4 } from 'uuid'

export const createUser = (req, res) => {
  const user = req.body

  users.push({ ...user, id: uuidv4() })
  res.send(`User with the name ${user.firstName} added to database!`)
}

From Postman create User:

{
	  "firstName": "John",
	  "lastName": "Wayne",
	  "age": 54
}
  1. Update User
// routes/users.js
import { updateUser } from '../controllers/users.js'
const router = express.Router()

router.patch('/:id', updateUser)

export default router
// controllers/users.js

export const updateUser = (req, res) => {
  const { id } = req.params
  const { firstName, lastName, age } = req.body

  const userFound = users.find((user) => user.id === id)

  if (firstName) userFound.firstName = firstName
  if (lastName) userFound.lastName = lastName
  if (age) userFound.age = age

  res.send(`User with the id ${id} has been updated`)
}
  1. Delete User
// routes/users.js
import { deleteUser } from '../controllers/users.js'
const router = express.Router()

router.delete('/:id', deleteUser)

export default router
// controllers/users.js

export const deleteUser = (req, res) => {
  const { id } = req.params

  users = users.filter((user) => user.id !== id)

  res.send(`User with the id ${id} deleted from the database.`)
}

About

nodejs basics first step

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published