Performance: Resource-based route organization
This affects server response time and client perceived load speed by organizing routes efficiently to reduce middleware overhead and improve caching.
const userRouter = express.Router(); userRouter.get('/profile', handler); userRouter.post('/create', handler); userRouter.put('/update', handler); userRouter.delete('/delete', handler); app.use('/user', userRouter);
app.get('/user/profile', handler); app.post('/user/create', handler); app.put('/user/update', handler); app.delete('/user/delete', handler);
| Pattern | Middleware Executions | Route Matching Efficiency | Response Time Impact | Verdict |
|---|---|---|---|---|
| Scattered individual routes | Multiple per request | Low | Adds 10-20ms per request | [X] Bad |
| Grouped resource-based router | Single per resource | High | Saves 10-20ms per request | [OK] Good |
books in Express?express.Router(), not createRouter() or new express.Router().users resource:const express = require('express');
const router = express.Router();
router.get('/', (req, res) => res.send('List users'));
router.post('/', (req, res) => res.send('Create user'));
router.get('/:id', (req, res) => res.send(`Get user ${req.params.id}`));
module.exports = router;/users/42?router.get('/:id', ...) matches GET requests with a parameter after /users/.Get user 42 using the id parameter from the URL.const router = express.Router();
router.get('/items', (req, res) => res.send('All items'));
router.get('/items/:id', (req, res) => res.send(`Item ${req.params.id}`));
router.post('/items', (req, res) => res.send('Add item'));
module.exports = router;app.use('/api', router);, what is the correct URL to get the response 'Item 5'?/api, so all routes inside it are prefixed with /api./items/:id inside the router becomes /api/items/:id in the app.products resource using Express Router. You need to support listing all products, creating a product, getting a product by ID, updating a product by ID, and deleting a product by ID.app.use('/products', router).Pass the test and this pattern moves unknown