Thiết lập dự án & Khởi chạy

Để bắt đầu phát triển ứng dụng NestJS, bạn cần chuẩn bị môi trường và thực hiện các bước khởi tạo dự án cơ bản. Hướng dẫn này tuân thủ tài liệu chuẩn từ NestJS giúp bạn thiết lập một cách nhanh chóng và chính xác nhất.

Yêu cầu hệ thống

Trước khi bắt đầu, hãy đảm bảo máy tính của bạn đã cài đặt:
  • Node.js (Khuyến nghị phiên bản LTS mới nhất, tối thiểu >= 16.x).
  • Trình quản lý gói (npm, yarn hoặc pnpm).

Khởi tạo dự án mới

Bạn có thể tạo một dự án NestJS mới bằng một trong hai cách dưới đây.
Bộ công cụ giao diện dòng lệnh (CLI) của NestJS giúp bạn tạo dự án mới và tự động sinh mã nguồn cho các component khác một cách nhanh chóng.
1

Cài đặt Nest CLI toàn cục

Chạy lệnh sau để cài đặt Nest CLI trên toàn hệ thống:
npm i -g @nestjs/cli
2

Khởi tạo dự án mới

Sử dụng lệnh nest new kèm tên thư mục dự án bạn muốn tạo:
nest new project-name
Hệ thống sẽ hỏi bạn muốn sử dụng trình quản lý gói nào (npm, yarn hoặc pnpm). Hãy chọn công cụ bạn muốn.

Cấu trúc thư mục cốt lõi

Sau khi khởi tạo, cấu trúc thư mục của dự án NestJS sẽ trông như sau. Các tệp tin mã nguồn chính nằm trong thư mục src/:
src/
├── app.controller.spec.ts  # File kiểm thử đơn vị (unit test) cho controller
├── app.controller.ts       # Controller xử lý các HTTP request và trả về kết quả
├── app.service.ts          # Service chứa business logic của ứng dụng
├── app.module.ts           # Root module kết nối các thành phần trong hệ thống
└── main.ts                 # Điểm khởi đầu (entry point) của ứng dụng

Chi tiết tệp tin main.ts

Tệp tin main.ts chứa logic khởi động ứng dụng bằng cách sử dụng lớp NestFactory:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(process.env.PORT ?? 3333);
}

void bootstrap();

Mặc định, NestJS sử dụng Express làm nền tảng HTTP server bên dưới. Nếu muốn tối ưu hiệu năng cao hơn, bạn có thể chuyển sang sử dụng Fastify thông qua gói @nestjs/platform-fastify.

Khởi chạy ứng dụng

Các lệnh chạy ứng dụng đã được cấu hình sẵn trong tệp package.json. Di chuyển vào thư mục dự án và chạy các lệnh tương ứng:
# Khởi chạy chế độ phát triển (Tự động tải lại khi phát hiện thay đổi mã nguồn)
npm run start:dev
Sau khi chạy lệnh khởi động thành công, hãy mở trình duyệt và truy cập địa chỉ http://localhost:3333. Bạn sẽ nhận được thông điệp “Hello World!”.

Thực hành Thiết lập Dự án từng bước với Claude Code

Đối với người học không chuyên, bạn không cần tự mình cài đặt các lệnh phức tạp trên Terminal. Hãy mở terminal lên và sử dụng Claude Code để thiết lập dự án cho bạn thông qua quy trình từng bước (Step-by-Step) dưới đây.
1

Bước 1: Khởi tạo thư mục dự án

Mở Terminal trên máy của bạn và gửi câu lệnh yêu cầu khởi tạo dự án cho Claude Code.
Tôi muốn khởi tạo một dự án NestJS mới. 
- Hãy chạy lệnh thích hợp để tạo dự án với tên 'my-nestjs-app'.
- Sử dụng trình quản lý gói 'npm' để cài đặt các thư viện liên quan.
2

Bước 2: Di chuyển vào thư mục dự án và mở Code editor

Sau khi tạo xong, di chuyển vào thư mục dự án để làm việc.
Hãy di chuyển terminal vào thư mục dự án 'my-nestjs-app' vừa tạo giúp tôi.
3

Bước 3: Thay đổi Cổng (Port) khởi chạy hệ thống

Mặc định, NestJS sẽ lắng nghe các yêu cầu kết nối ở cổng 3000. Bạn có thể yêu cầu Claude Code đổi sang cổng 3333 để tránh bị trùng lặp với các ứng dụng khác.
Hãy tìm tệp cấu hình khởi động ứng dụng 'src/main.ts' và sửa cổng kết nối mặc định thành 3333 giúp tôi.
4

Bước 4: Ra lệnh Khởi chạy thử ứng dụng

Yêu cầu Claude Code kích hoạt máy chủ phát triển để kiểm thử kết nối.
Hãy chạy lệnh khởi động máy chủ ứng dụng ở chế độ phát triển (watch mode) để tôi kiểm tra thử trên trình duyệt.
Sau khi máy chủ khởi động thành công, bạn chỉ cần mở trình duyệt và truy cập địa chỉ http://localhost:3333 để xem kết quả phản hồi đầu tiên.