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"...
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...
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...
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...
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...
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...
69 post articles, 12 pages.