Performance: Why controllers handle incoming requests
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 |
@Controller('greet')
export class GreetController {
@Get()
sayHello() {
return 'Hello, NestJS!';
}
}@Controller('users')
export class UserController {
@Post('/create')
createUser() {
// missing request body parameter
return 'User created';
}
}Pass the test and this pattern moves unknown