Performance: Why controllers handle incoming requests
MEDIUM IMPACT
This affects how quickly the server processes and responds to user requests, impacting server response time and user experience.
import { Controller, Get } from '@nestjs/common'; @Controller('users') export class UsersController { constructor(private readonly userService: UserService) {} @Get() async getUsers() { // Use async non-blocking operations const users = await this.userService.findAll(); return users; } }
import { Controller, Get } from '@nestjs/common'; @Controller('users') export class UsersController { @Get() async getUsers() { // Heavy synchronous processing here for (let i = 0; i < 1e8; i++) {} return { message: 'Users list' }; } }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Blocking synchronous controller code | N/A (server-side) | N/A | N/A | [X] Bad |
| Asynchronous non-blocking controller code | N/A (server-side) | N/A | N/A | [OK] Good |