How to define routes in Express

· Category: Node.js

Short answer

Use app.METHOD(PATH, HANDLER) or express.Router() to define routes that map HTTP methods and URLs to handler functions.

Steps

  1. Create a route for GET requests: app.get('/users', (req, res) => res.json(users));.
  2. Create a route with URL parameters: app.get('/users/:id', (req, res) => { const id = req.params.id; ... });.
  3. Use express.Router() to group related routes in separate files.
  4. Mount the router with app.use('/api', router);.
  5. Handle POST requests and access the body with req.body after adding body-parsing middleware.

Tips

  • Use route-specific middleware by passing multiple handlers: app.get('/admin', isAuth, handler).
  • Query parameters are accessed via req.query, not req.params.

Common issues

  • Route order matters; more specific routes should be defined before generic ones to avoid early matching.
  • Forgetting express.json() middleware means req.body will be undefined for JSON payloads.