Performance: Middleware ordering
Middleware order affects how fast requests are processed and how many times the browser waits before getting a response.
app.use(lightMiddleware); app.use(heavyMiddleware);
app.use(heavyMiddleware); app.use(lightMiddleware);
| Pattern | Middleware Order | Request Delay | User Impact | Verdict |
|---|---|---|---|---|
| Heavy middleware first | Heavy → Light | High delay | Slower response, worse INP | [X] Bad |
| Light middleware first | Light → Heavy | Lower delay | Faster response, better INP | [OK] Good |
apply() method?authMiddleware and loggerMiddleware in order using NestJS apply() method?apply(middleware1, middleware2) to apply middleware in order.authMiddleware before loggerMiddleware, list authMiddleware first.apply(authMiddleware, loggerMiddleware).forRoutes('users')
What will be the order of middleware execution when a request hits the 'users' route?authMiddleware is first.authMiddleware runs before loggerMiddleware.apply(loggerMiddleware, authMiddleware).forRoutes('profile')
But you want authMiddleware to run before loggerMiddleware. What is the fix?loggerMiddleware runs before authMiddleware.authMiddleware first, list it first in apply().loggerMiddleware first, then authMiddleware, then modifyBodyMiddleware.Pass the test and this pattern moves unknown