Routing

Routing decides what code should run for a specific HTTP request.

A route usually depends on:

Basic routes

app.get('/users', (req, res) => {
  res.json([{ id: 1, name: 'Asha' }])
})

app.post('/users', (req, res) => {
  res.status(201).json({ message: 'User created' })
})

GET /users and POST /users are different routes.

They use the same path, but different HTTP methods.

Common HTTP methods

Method Meaning
GET Read data
POST Create data
PUT Replace data
PATCH Partially update data
DELETE Delete data

Route params

app.get('/users/:id', (req, res) => {
  res.json({ id: req.params.id })
})

For /users/42, req.params.id is 42.

Router

For larger apps, use express.Router.

import { Router } from 'express'

const router = Router()

router.get('/', getUsers)
router.post('/', createUser)

export default router

Then mount it:

app.use('/users', userRouter)

Common mistake

Route order matters.

Put specific routes before broad dynamic routes.

app.get('/users/me', getCurrentUser)
app.get('/users/:id', getUserById)

If /:id comes first, /me may be treated as an id.

Interview answer

Routing in Express maps an HTTP method and path to a handler function. For example, GET /users can return users, while POST /users can create a user. Express Router helps split routes into separate modules for maintainability.