一、核心概念
1. 架構基礎
-
基于 Express/Fastify 的 Node.js 框架
-
采用模塊化設計
-
使用 TypeScript 構建(也支持 JavaScript)
-
借鑒 Angular 的設計理念
2. 主要組件
-
模塊 (Module): 應用的基本組織單元
-
控制器 (Controller): 處理 HTTP 請求
-
服務 (Service/Provider): 業務邏輯封裝
-
中間件 (Middleware): 請求處理管道
-
異常過濾器 (Exception Filter): 錯誤處理
-
管道 (Pipe): 數據驗證和轉換
-
守衛 (Guard): 認證和授權
-
攔截器 (Interceptor): AOP 編程
二、核心功能
1. 模塊系統
-
@Module()
?裝飾器 -
模塊類型:根模塊、特性模塊、共享模塊、全局模塊
-
模塊元數據:providers, controllers, imports, exports
2. 依賴注入
-
基于 IoC (Inversion of Control) 容器
-
提供者注冊與注入
-
作用域:DEFAULT, REQUEST, TRANSIENT
3. 控制器
-
路由定義
-
請求方法裝飾器:
@Get()
,?@Post()
,?@Put()
,?@Delete()
?等 -
請求參數裝飾器:
@Param()
,?@Query()
,?@Body()
,?@Headers()
4. 提供者
-
服務、倉庫、工廠等
-
自定義提供者
-
可選依賴
-
基于屬性的注入
三、高級特性
1. 微服務支持
-
內置多種傳輸層:TCP, Redis, MQTT, NATS, gRPC 等
-
消息模式:請求-響應、事件發布-訂閱
-
微服務客戶端
2. WebSocket
-
網關 (Gateway)
-
訂閱消息
-
消息廣播
3. 數據庫集成
-
TypeORM 支持
-
Sequelize 支持
-
Mongoose 支持
-
自定義提供者
4. 安全特性
-
認證:JWT, Passport 集成
-
授權:基于角色的訪問控制 (RBAC)
-
CORS 支持
-
CSRF 防護
-
速率限制
5. 配置管理
-
配置模塊
-
環境變量
-
自定義配置文件
-
驗證配置值
四、測試
1. 單元測試
-
測試工具:Jest
-
測試模塊
-
模擬提供者
2. E2E 測試
-
測試應用實例
-
請求模擬
-
數據庫測試
五、最佳實踐
1. 項目結構
-
功能模塊組織
-
共享模塊
-
核心模塊
2. 性能優化
-
異步處理
-
緩存策略
-
壓縮
-
集群模式
3. 部署
-
Docker 容器化
-
PM2 進程管理
-
健康檢查
-
日志管理
六、生態系統
1. 官方工具
-
Nest CLI
-
Schematics
-
Swagger 集成
2. 常用第三方模塊
-
緩存:CacheManager
-
隊列:Bull
-
日志:Winston, Pino
-
監控:Prometheus
-
郵件:Nodemailer
3. 框架擴展
-
自定義裝飾器
-
動態模塊
-
生命周期鉤子
七、學習資源
-
官方文檔
-
NestJS 樣板項目
-
社區插件
-
開源示例
這個框架涵蓋了 NestJS 的主要知識點,可以作為學習或復習的路線圖。根據您的具體需求,可以深入某個特定領域進行更詳細的學習。