Performance: Creating an Express Router
MEDIUM IMPACT
This affects the server-side routing performance and how efficiently requests are matched and handled, impacting response time and server load.
const express = require('express'); const app = express(); const userRouter = express.Router(); const productRouter = express.Router(); userRouter.get('/', (req, res) => { res.send('Users list'); }); productRouter.get('/', (req, res) => { res.send('Products list'); }); app.use('/users', userRouter); app.use('/products', productRouter);
const express = require('express'); const app = express(); app.get('/users', (req, res) => { res.send('Users list'); }); app.get('/products', (req, res) => { res.send('Products list'); }); // Many routes defined directly on app
| Pattern | Middleware Calls | Route Matching | Request Handling Time | Verdict |
|---|---|---|---|---|
| All routes on app instance | All middleware runs on every request | Matches every route sequentially | Higher as routes increase | [X] Bad |
| Routes grouped with Express Router | Middleware scoped to routers | Matches routes within router scope | Lower and scalable | [OK] Good |