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
- Create a route for GET requests:
app.get('/users', (req, res) => res.json(users));. - Create a route with URL parameters:
app.get('/users/:id', (req, res) => { const id = req.params.id; ... });. - Use
express.Router()to group related routes in separate files. - Mount the router with
app.use('/api', router);. - Handle POST requests and access the body with
req.bodyafter 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, notreq.params.
Common issues
- Route order matters; more specific routes should be defined before generic ones to avoid early matching.
- Forgetting
express.json()middleware meansreq.bodywill be undefined for JSON payloads.