Lesson 14 / 23
express.Router()
Split routes into modular, mountable files.
A mini-app for a resource
express.Router() creates a self-contained set of routes and middleware that behaves like its own mini Express app.
routes/users.js
Define routes relative to where the router will be mounted.
// routes/users.js
import { Router } from 'express';
const router = Router();
router.get('/', (req, res) => res.json([{ id: 1, name: 'Ada' }]));
router.get('/:id', (req, res) => res.json({ id: req.params.id }));
export default router;Mounting it
app.use(prefix, router) prepends the prefix to every route defined in that router.
// server.js
import express from 'express';
import usersRouter from './routes/users.js';
const app = express();
app.use('/users', usersRouter); // GET /users, GET /users/:id
app.listen(3000);Keep the entry file thin
One router per resource — routes/users.js, routes/orders.js — keeps server.js focused on wiring things together, not route logic.