Home

NestJS – E2E Testing (End-to-End Testing)

E2E Testing kiểm tra toàn bộ luồng từ HTTP request → Controller → Service → Database — đảm bảo các layer phối hợp đúng. NestJS dùng Supertest để test HTTP endpoints thực tế. 1. Cấu trúc E2E test test/ app.e2e-spec.ts ← Test file jest-e2e.json ← Jest config cho E2E // jest-e2e.json { "moduleFileExtensions": ["js", "json", "ts"...

Read more

NestJS – Unit Testing với Jest

Unit Testing giúp đảm bảo từng service/controller hoạt động đúng, phát hiện bug sớm, và tự tin refactor code. NestJS tích hợp sẵn Jest — bài này hướng dẫn viết unit test thực tế. 1. Cấu trúc test trong NestJS NestJS CLI tự tạo file *.spec.ts khi generate module: src/ users/ users.service.ts users.service.spec.ts ← Unit test u...

Read more

NestJS – Gửi Email với Nodemailer & SendGrid

Gửi email là tính năng không thể thiếu trong ứng dụng web: xác nhận đăng ký, reset mật khẩu, thông báo đơn hàng. Bài này hướng dẫn hai cách phổ biến: Nodemailer (SMTP linh hoạt) và SendGrid (dịch vụ email chuyên nghiệp). 1. Nodemailer — Gửi qua SMTP Cài đặt npm install nodemailer npm install -D @types/nodemailer Tạo MailService // src/mail...

Read more

NestJS – Rate Limiting & Throttling bảo vệ API

Rate Limiting là kỹ thuật giới hạn số request từ một client trong một khoảng thời gian nhất định — bảo vệ API khỏi abuse, DDoS nhẹ, và giảm tải server. NestJS cung cấp @nestjs/throttler tích hợp sẵn, dễ dùng. 1. Cài đặt npm install @nestjs/throttler 2. Cấu hình cơ bản // app.module.ts import { ThrottlerModule, ThrottlerGuard } from '@nestjs...

Read more

Fine-tuning vs RAG – Khi nào dùng gì?

Khi muốn LLM “biết” về dữ liệu của bạn, có hai hướng chính: Fine-tuning (train lại model) và RAG (cung cấp ngữ cảnh runtime). Đây là câu hỏi thực tế mà bất kỳ ai xây dựng AI application cũng phải đối mặt. 1. Fine-tuning là gì? Fine-tuning là quá trình tiếp tục train một model đã pre-trained trên tập dữ liệu của bạn. Model “học thuộc” kiến thức...

Read more

LangChain – Xây dựng AI Agent đơn giản với NodeJS

LangChain là framework phổ biến nhất để xây dựng ứng dụng AI — từ chatbot đơn giản đến AI Agent phức tạp có khả năng sử dụng tools, tìm kiếm web, chạy code. Bài này giới thiệu LangChain.js và xây dựng agent thực tế. 1. LangChain là gì? LangChain cung cấp các abstraction layers: Models: Wrapper cho OpenAI, Gemini, Anthropic, Ollama… Promp...

Read more