🔧 1. NestJS là gì?
NestJS là một framework mã nguồn mở, kết hợp sức mạnh của Express (hoặc Fastify) với mô hình kiến trúc Modular và Dependency Injection tương tự như Angular.
Điều này giúp code của bạn dễ tổ chức và dễ mở rộng khi dự án trở nên phức tạp.
👉 Nói ngắn gọn:
NestJS = Node.js + TypeScript + Kiến trúc module + Dependency Injection.
🧱 2. Cấu trúc cơ bản của một dự án NestJS
Khi bạn khởi tạo một ứng dụng mới bằng lệnh:
npm i -g @nestjs/cli
nest new my-project
Bạn sẽ nhận được một cấu trúc thư mục như sau:
src/
┣ app.controller.ts
┣ app.controller.spec.ts
┣ app.module.ts
┣ app.service.ts
┗ main.ts
📂 Giải thích nhanh:
app.module.ts → Module gốc, nơi khai báo các module con, controller, provider.
app.controller.ts → Xử lý các request HTTP.
app.service.ts → Chứa logic nghiệp vụ (business logic).
main.ts → File khởi động ứng dụng.
⚙️ 3. Tạo một REST API đơn giản với NestJS
Giả sử bạn muốn tạo một endpoint /users để trả về danh sách người dùng:
Bước 1: Tạo module mới
nest g module users
Bước 2: Tạo controller và service
nest g controller users
nest g service users
Bước 3: Thêm logic vào service
// users.service.ts
import { Injectable } from '@nestjs/common';
@Injectable()
export class UsersService {
private users = [
{ id: 1, name: 'An Nguyen' },
{ id: 2, name: 'Tuan Le' },
];
findAll() {
return this.users;
}
}
Bước 4: Sử dụng service trong controller
// users.controller.ts
import { Controller, Get } from '@nestjs/common';
import { UsersService } from './users.service';
@Controller('users')
export class UsersController {
constructor(private readonly usersService: UsersService) {}
@Get()
getAllUsers() {
return this.usersService.findAll();
}
}
🧩 4. Ưu điểm của NestJS
✅ Hỗ trợ TypeScript hoàn chỉnh.
✅ Cấu trúc module hóa giúp dễ mở rộng.
✅ Tích hợp middleware, guards, interceptors, pipes giống như Angular.
✅ Hỗ trợ GraphQL, WebSocket, Microservices.
✅ Dễ testing nhờ dependency injection.
🧠 5. Khi nào nên dùng NestJS?
NestJS phù hợp khi:
Dự án backend cần quy mô lớn và có nhiều module.
Cần REST API hoặc GraphQL API.
Cần code rõ ràng, dễ bảo trì.
Làm việc trong team lớn cần tiêu chuẩn thống nhất.
🔮 6. Kết luận
NestJS mang đến một cách tiếp cận hiện đại và mạnh mẽ trong việc phát triển backend với Node.js.
Nếu bạn đến từ thế giới Angular hoặc Java/Spring Boot, bạn sẽ thấy NestJS rất quen thuộc và dễ học.
💡 Hãy thử bắt đầu bằng việc tạo một REST API nhỏ với NestJS — bạn sẽ thấy code của mình rõ ràng và “sạch” hơn bao giờ hết!
Về tác giả
Bình luận (0)
Đăng nhập để tham gia thảo luận
Đăng nhập

