# nest-tutorial **Repository Path**: yumengjh/nest-tutorial ## Basic Information - **Project Name**: nest-tutorial - **Description**: 从零到上手的 NestJS 入门课程,适合前端转后端 & 全栈学习者。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-30 - **Last Updated**: 2025-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nestjs, Nodejs, TypeScript, tutorial, 教程 ## README # NestJS 入门教程 | 从零到上手 这是一个 **系统级的 NestJS 入门教程**,专为初学者设计,内容从基础到实践,帮助你快速掌握 NestJS 的核心概念与应用场景。 本教程基于官方文档,同时结合了实战经验,循序渐进,适合前端转后端、Node.js 开发者、全栈学习者。 ## 相关原文档 - [Nest中文网](https://nest.nodejs.cn/) - [Nest中文文档](https://docs.nestjs.cn/) - [Nest官方文档](https://docs.nestjs.com/) ## 特点 - 🧩 **系统化**:涵盖控制器、服务、依赖注入、中间件、拦截器、管道、守卫等核心模块 - 📖 **简明易懂**:用实例代码讲解复杂概念,减少学习曲线 - 📦 **渐进学习**:每日一个小知识点,不怕学不完 一些概念可能记的有点重复,建议搭配官方文档阅读 ↑ 。 ## 适合人群 - 🔰 零基础想学后端的前端开发者 - 👤 想快速掌握 NestJS 的 Node.js 工程师 - 🌍 想搭建全栈项目的学习者 ## 教程目录 阅读直达 → [在线教程](https://yumeng.icu/nest/)(Latest) ### 概述 - [控制器 (Controller)](./概述/4.nest-controller.md) - [Provider](./概述/5.nest-provider.md) - [模块 (Modules)](./概述/6.nest-modules.md) - [中间件 (Middleware)](./概述/7.nest-middleware.md) - [异常过滤器 (Exception Filters)](./概述/8.nest-exception-filters.md) - [管道 (Pipes)](./概述/9.nest-pipes.md) - [守卫 (Guards)](./概述/10.nest-guards.md) - [拦截器 (Interceptors)](./概述/11.nest-interceptors.md) - [自定义路由装饰器](./概述/12.nest-custom-route-decorators.md) ### 基础知识 - [自定义 Provider](./基础知识/nest-custom-providers.md) - [执行上下文](./基础知识/nest-execution-context.md) - [单例与隔离](./基础知识/nest-singletons-isolation.md) ### 安全 - [认证 (Authentication)](./安全/nest-authentication.md) - [授权 (Authorization)](./安全/nest-authorization.md) ### 技术 - [验证 (Validation)](./技术/nest-validation.md) ### 实践 - [动态模块实践](./实践/nest-dynamic-module-practice.md) ### 小记 - [学习中可能会遇到疑惑](./小记/2.nest-practice-tip.md) ## AI 提示词 你是一个 NestJS 专家,负责分析和解释 NestJS 官方文档。用户会提供一段文档(英文或中文),你的任务是: 1. **准确、地道的翻译**:将文档片段翻译成中文,使用专业、符合 NestJS 术语的表达,但是不要太生硬,适当加一些比喻,让人更容易懂。 2. **在翻译后适当补充解释**,更多API,使用场景,常见陷阱。 3. **基于真实开发的建议** 4. **聚焦关键细节**:突出功能的核心要点,避免冗长但不遗漏重要信息。 5. **上下文延续**:根据用户之前的提问风格(例如偏向深入技术探讨)调整回答。 6. **专业且通俗的语气**:兼顾技术准确性和易懂性,避免过于复杂或简化。 7. **代码示例**:必要时提供简洁、正确的 TypeScript/JavaScript 代码片段来说明用法或最佳实践,但始终要把当前翻译的文档的**核心**举些代码例子。 8. **避免冗长**:保持回答简洁,避免重复或过于复杂的示例,同时确保全面性。 9. **可选可视化**:若用户请求图表(如依赖注入树),可描述图表内容或确认是否需要生成。 10. **代码解释/注释**:如果用户提供的文档中有代码,需要对其中的复杂代码进行解释,适当的在其中注释,过于复杂的代码块提取出来单独解释 11. **注意**:不要把我发你的原文又发给我,你只需要输出你的综合翻译后的文档 听懂了吗, 听懂了请输出:我准备好了 ## 学习路线 **应该掌握的核心模块**(**必学**) 这部分是你**开发任何真实项目的“地基”**: | 模块分类 | 推荐学习条目 | 说明 | | ------------ | ---------------------------------------------------- | ------------------------------ | | 框架基础 | 概述、控制器、提供器、模块、生命周期事件、执行上下文 | 核心概念,打好 Nest 的使用习惯 | | 依赖注入 | 自定义提供器、注入作用域、异步提供器、循环依赖 | 深入理解 DI 系统的工作机制 | | 技术特性 | 中间件、异常过滤器、管道、守卫、拦截器、自定义装饰器 | 构建通用逻辑处理器和链式流程 | | 配置与数据库 | 配置、验证、数据库(TypeORM 或 Prisma)、缓存、日志 | 实战项目的常见底层功能 | | API 工具 | Swagger(开放 API)、版本控制、序列化 | 构建标准化、可维护的后端接口 | | 通用模块 | 静态服务、上传文件、事件、任务调度(可选) | 多用于后台管理系统 | **可视情况深入(选学,项目中用到再学)** | 类型 | 模块 / 特性 | 说明 | | ---------- | ----------------------------------- | -------------------------------------- | | GraphQL | 全部(快速开始、解析器、类型等) | 如果你的项目用 GraphQL,就必须掌握 | | 微服务 | 概述、gRPC、Kafka、RabbitMQ等 | 用于服务拆分、高并发或跨语言通信 | | 安全相关 | Helmet、CORS、CSRF、限速、授权等 | 如果涉及登录认证、API 安全,就很重要 | | WebSocket | 网络套接字、网关 | 用于聊天、实时通知等功能 | | 高级优化 | 请求作用域、持久化提供器、性能、SWC | 主要用于高并发或大型项目场景的性能优化 | | 命令行工具 | Nest CLI、REPL、增删改查生成器等 | 提升效率,但不是必须 | | 插件生态 | CQRS、Compodoc、Sentry、MikroORM等 | 项目复杂时按需选用 | 第一阶段:打好基础(必学) ```ts 控制器 → 模块 → 提供器 → 生命周期钩子 → 中间件 → 异常过滤器 → 管道 → 守卫 → 拦截器 ``` 第二阶段:掌握依赖注入机制 ```ts 依赖注入 → 自定义提供器 → useClass/useFactory/useValue → 作用域理解(单例/请求级/瞬态) ``` 第三阶段:对接数据库、构建 API ```ts 配置 → 数据库模块(TypeORM / Prisma) → 验证 → 日志 → 缓存 → Swagger → 上传文件 ``` 第四阶段:安全 & 项目架构 ```ts 认证与授权(JWT + Passport) → CORS / CSRF / Helmet → 多模块拆分 ``` ## 快速开始 ```bash git clone https://github.com/yourname/nestjs-tutorial.git cd nestjs-tutorial ``` ## 贡献 🤝 欢迎提交 Issue / PR 来完善本教程。 如果本项目对你有帮助,请 **Star ⭐** 支持一下。