Performance: Express application structure
MEDIUM IMPACT
This affects the server response time and how quickly the server can handle requests, impacting the time to first byte (TTFB).
const express = require('express'); const app = express(); const userRouter = express.Router(); userRouter.get('/', (req, res) => { res.send('User page'); }); const adminRouter = express.Router(); adminRouter.use((req, res, next) => { // heavy middleware only for admin routes for(let i=0; i<1000000; i++) {} next(); }); adminRouter.get('/', (req, res) => { res.send('Admin page'); }); app.use('/user', userRouter); app.use('/admin', adminRouter); app.listen(3000);
const express = require('express'); const app = express(); app.use((req, res, next) => { // heavy middleware runs on every request for(let i=0; i<1000000; i++) {} next(); }); app.get('/user', (req, res) => { res.send('User page'); }); app.get('/admin', (req, res) => { res.send('Admin page'); }); app.listen(3000);
| Pattern | Middleware Runs | Request Delay | Server Load | Verdict |
|---|---|---|---|---|
| Global heavy middleware | Runs on all requests | Increases TTFB by 50-100ms | Higher CPU usage | [X] Bad |
| Scoped middleware per router | Runs only on relevant routes | Minimal delay on unrelated routes | Lower CPU usage | [OK] Good |