从零入门 NestJS:构建你的第一个 REST API —— 文章目录
-
导语:为什么选择 NestJS?
- 模块化、依赖注入、企业级支持的优势简介
-
环境准备
- Node.js 版本要求
- 安装 Nest CLI
- 初始化第一个 NestJS 项目
-
项目结构解析
- 认识
src/目录 - 关键文件作用详解(
main.ts、app.module.ts等)
- 认识
-
创建第一个 Controller
- 使用
@Controller实现 GET/POST 接口 - 路由机制与参数传递
- 实战场景:实现「Hello World」与用户注册接口
- 使用
-
依赖注入实战
- 理解
@Injectable和 Providers - 服务层解耦与复用
- 实战场景:用户服务的注入与调用
- 理解
-
连接数据库
- 集成 TypeORM
- 实体(Entity)定义与数据迁移
- 基础 CRUD 操作实现
- 实战场景:用户信息的持久化
-
异常处理
- 全局异常过滤器(
@Catch) - 自定义异常与错误响应
- 全局拦截器的使用
- 实战场景:统一 API 错误返回格式
- 全局异常过滤器(
-
结合 Bull 的消息队列
- Bull 简介与安装
- 队列任务的创建与消费
- 实战场景:异步邮件发送/任务调度
-
GraphQL 集成与实践
- GraphQL 简介与优势
- NestJS 中的 GraphQL 集成方式
- 实战场景:构建灵活的数据查询接口
-
WebSocket 实时通信
- WebSocket 基础与应用场景
- NestJS 中的 WebSocket 支持与网关(Gateway)机制
- 实战场景:聊天室/实时通知
-
缓存机制与优化
- 缓存的作用与常见方案
- NestJS 集成缓存(如 Redis)
- 实战场景:接口数据缓存与性能提升
-
微服务与 NestJS 高级功能
- 微服务架构与通信
- 结合 RabbitMQ 等消息队列进行服务间通信
- 常用高级特性(如守卫、拦截器等)
- 实战场景:服务拆分与跨服务调用
-
总结与延伸学习
- 常见开发坑点与排查建议
- 推荐学习路径与官方资源
- 进阶话题指引(如微服务、WebSocket)