Performance: Creating middleware
MEDIUM IMPACT
Middleware affects request processing speed and can impact server response time and client perceived latency.
import { Injectable, NestMiddleware } from '@nestjs/common'; import { Request, Response, NextFunction } from 'express'; @Injectable() export class LoggingMiddleware implements NestMiddleware { use(req: Request, res: Response, next: NextFunction) { setImmediate(() => { console.log(`Request to ${req.url}`); }); next(); } }
import { Injectable, NestMiddleware } from '@nestjs/common'; import { Request, Response, NextFunction } from 'express'; @Injectable() export class LoggingMiddleware implements NestMiddleware { use(req: Request, res: Response, next: NextFunction) { // Synchronous heavy computation for (let i = 0; i < 1e7; i++) {} console.log(`Request to ${req.url}`); next(); } }
| Pattern | Event Loop Blocking | Request Latency | Concurrency Impact | Verdict |
|---|---|---|---|---|
| Synchronous heavy work in middleware | High (blocks event loop) | High latency per request | Low concurrency | [X] Bad |
| Asynchronous non-blocking middleware | None (event loop free) | Low latency | High concurrency | [OK] Good |