Controller trong NestJS
Bài 4 – Controller và cách xử lý request trong NestJS
Controller trong NestJS
Controller chịu trách nhiệm tiếp nhận request từ client và trả về response tương ứng. Đây là lớp giao tiếp giữa bên ngoài và hệ thống xử lý bên trong ứng dụng.
1. Nội dung chính
- Controller là gì và vai trò trong kiến trúc NestJS
- Tạo controller bằng Nest CLI
- Routing cơ bản: GET, POST, PUT, DELETE
- Truyền tham số qua URL, query, body
- Cách tổ chức controller theo từng module
2. Ví dụ
// Tạo controller
// nest g controller users
import { Controller, Get, Param } from '@nestjs/common';
@Controller('users')
export class UsersController {
@Get()
findAll() {
return ['user 1', 'user 2'];
}
@Get(':id')
findOne(@Param('id') id: string) {
return { id, name: 'User Example' };
}
}
3. Kiến thức trọng tâm
- Mỗi controller quản lý một nhóm route liên quan
- Decorator như @Get(), @Post(), @Param(), @Body() giúp định nghĩa điểm cuối API dễ dàng
- Controller chỉ nên xử lý request/response, còn logic nghiệp vụ đặt ở service
4. Bài tập nhanh
-
Tạo controller products với các route: GET /products và GET /products/:id
-
Thêm route POST /products để tạo sản phẩm mới
-
Tách logic xử lý sang service để controller chỉ đóng vai trò điều hướng
5. Kết luận
Controller giúp định tuyến và xử lý request đầu vào một cách rõ ràng. Đây là bước khởi đầu để xây dựng các API chuẩn trong NestJS.