关于 nest
nest 是用于开发 NestJS 服务端应用的参考技能,为开发者整理了框架基础、安全、集成与应用模式等指导内容。
主要功能
- 01NestJS CLI 与 monorepo 指导
- 02控制器、模块与提供者
- 03验证与依赖注入
- 04安全与身份验证主题
- 05GraphQL、WebSockets 与微服务
- 06数据库与部署技术
适用场景
- 01搭建 NestJS 应用骨架
- 02实现身份验证与授权
- 03添加 GraphQL 或 WebSocket 功能
- 04配置数据库与后台任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ hairyf/ skills --skill nest安装后在 Claude Code 中输入/nest确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
GENERATION.mdreferences/best-practices-request-lifecycle.mdcli-monorepo.mdcli-overview.mdcore-controllers.mdcore-dependency-injection.mdcore-middleware.mdcore-modules.mdcore-providers.mdfaq-raw-body-hybrid.mdfundamentals-circular-dependency.mdfundamentals-custom-decorators.mdfundamentals-dynamic-modules.mdfundamentals-exception-filters.mdfundamentals-execution-context.mdfundamentals-guards.mdfundamentals-interceptors.mdfundamentals-lazy-loading.mdfundamentals-lifecycle-events.mdfundamentals-module-reference.mdfundamentals-pipes.mdfundamentals-provider-scopes.mdfundamentals-testing.mdgraphql-overview.mdgraphql-resolvers-mutations.mdgraphql-scalars-unions-enums.mdgraphql-subscriptions.mdmicroservices-grpc.mdmicroservices-overview.mdmicroservices-transports.md详细介绍
NestJS 是一个渐进式 Node.js 框架,用于构建高效且可扩展的服务端应用。它默认使用 TypeScript,同时支持 Express 和 Fastify,并提供了一套受 Angular 启发的开箱即用应用架构。NestJS 融合了 OOP、FP 和 FRP 的元素,非常适合构建企业级应用。
该技能基于 NestJS 文档,生成于 2026-02-01。
命令行
| 主题 | 描述 | 参考 |
|---|---|---|
| 命令行概览 | 脚手架、构建和运行应用 | cli-overview |
| Monorepo 与库 | 工作区、应用、共享库 | cli-monorepo |
核心参考
| 主题 | 描述 | 参考 |
|---|---|---|
| 控制器 | 路由处理器、HTTP 方法、请求/响应处理 | core-controllers |
| 模块 | 应用结构、功能模块、共享模块、动态模块 | core-modules |
| 提供者 | 服务、依赖注入、自定义提供者 | core-providers |
| 依赖注入 | DI 基础、自定义提供者、作用域 | core-dependency-injection |
| 中间件 | 请求/响应中间件、函数式中间件 | core-middleware |
基础知识
| 主题 | 描述 | 参考 |
|---|---|---|
| 管道 | 数据转换和验证管道 | fundamentals-pipes |
| 守卫 | 授权守卫、基于角色的访问控制 | fundamentals-guards |
| 拦截器 | 面向切面编程、响应转换 | fundamentals-interceptors |
| 异常过滤器 | 错误处理、自定义异常过滤器 | fundamentals-exception-filters |
| 自定义装饰器 | 创建自定义参数装饰器 | fundamentals-custom-decorators |
| 动态模块 | 可配置模块、模块配置 | fundamentals-dynamic-modules |
| 执行上下文 | 访问请求上下文、元数据反射 | fundamentals-execution-context |
| 提供者作用域 | 单例、请求作用域、瞬态提供者 | fundamentals-provider-scopes |
| 生命周期事件 | 应用和提供者生命周期钩子 | fundamentals-lifecycle-events |
| 懒加载 | 为无服务器按需加载模块 | fundamentals-lazy-loading |
| 循环依赖 | 使用 forwardRef 解决循环依赖 | fundamentals-circular-dependency |
| 模块引用 | 使用 ModuleRef 动态访问提供者 | fundamentals-module-reference |
| 测试 | 使用 @nestjs/testing 进行单元测试和 e2e 测试 | fundamentals-testing |
技术
| 主题 | 描述 | 参考 |
|---|---|---|
| 验证 | ValidationPipe、class-validator、DTO 验证 | techniques-validation |
| 配置 | 环境变量、ConfigModule、配置管理 | techniques-configuration |
| 数据库 | TypeORM、Prisma、MongoDB 集成 | techniques-database |
| 缓存 | 缓存管理器、Redis 集成、自动缓存 | techniques-caching |
| 日志记录 | 内置日志记录器、自定义日志记录器、JSON 日志记录 | techniques-logging |
| 文件上传 | 使用 multer 处理文件上传、验证 | techniques-file-upload |
| 版本控制 | URI、请求头和媒体类型 API 版本控制 | techniques-versioning |
| 序列化 | 使用 class-transformer 进行响应序列化 | techniques-serialization |
| 队列 | 使用 BullMQ 进行后台任务处理 | techniques-queues |
| 任务调度 | Cron 任务、间隔和超时 | techniques-task-scheduling |
| 事件 | 使用 EventEmitter 的事件驱动架构 | techniques-events |
| HTTP 模块 | 使用 Axios 发起 HTTP 请求 | techniques-http-module |
| Fastify | 使用 Fastify 获得更好的性能 | techniques-fastify |
| 会话与 Cookie | 用于有状态应用的 HTTP 会话和 Cookie | techniques-sessions-cookies |
| 流式传输与 SSE | 压缩、文件流式传输、Server-Sent Events | techniques-compression-streaming-sse |
| MVC 与静态服务 | 模板渲染 (Handlebars) 和 SPA 静态服务 | techniques-mvc-serve-static |
安全
| 主题 | 描述 | 参考 |
|---|---|---|
| 认证 | Passport 集成、JWT 认证 | recipes-authentication |
| 授权 | RBAC、基于声明、CASL 集成 | security-authorization |
| CORS 与速率限制 | CORS、Helmet、ThrottlerModule | security-cors-helmet-rate-limiting |
| 加密与哈希 | bcrypt、argon2、密码哈希 | security-encryption-hashing |
OpenAPI
| 主题 | 描述 | 参考 |
|---|---|---|
| Swagger | OpenAPI 文档生成 | openapi-swagger |
WebSockets
| 主题 | 描述 | 参考 |
|---|---|---|
| 网关 | 使用 Socket.IO/ws 进行实时通信 | websockets-gateways |
| 守卫与异常过滤器 | WsException、BaseWsExceptionFilter、拦截器、管道 | websockets-advanced |
微服务
| 主题 | 描述 | 参考 |
|---|---|---|
| 概述 | 传输层、消息模式、事件 | microservices-overview |
| gRPC | Protocol Buffers、流式传输、元数据、反射 | microservices-grpc |
| 传输 | Redis、Kafka、NATS、RabbitMQ 配置 | microservices-transports |
GraphQL
| 主题 | 描述 | 参考 |
|---|---|---|
| 概览 | 代码优先和 schema 优先方法 | graphql-overview |
| 解析器与变更 | 查询、变更、字段解析器 | graphql-resolvers-mutations |
| 订阅 | 使用 PubSub 进行实时订阅 | graphql-subscriptions |
| 标量、联合与枚举 | 接口、标量、联合类型、枚举 | graphql-scalars-unions-enums |
实战示例
| 主题 | 描述 | 参考 |
|---|---|---|
| CRUD 生成器 | Nest CLI 资源生成器 | recipes-crud-generator |
| 文档 | OpenAPI/Swagger 集成 | recipes-documentation |
| TypeORM | TypeORM 集成与使用 | recipes-typeorm |
| Prisma | Prisma ORM 集成 | recipes-prisma |
| Mongoose | 使用 Mongoose ODM 操作 MongoDB | recipes-mongoose |
| CQRS | 命令查询职责分离 | recipes-cqrs |
| Terminus | 健康检查以及就绪/存活探针 | recipes-terminus |
常见问题
| 主题 | 描述 | 参考 |
|---|---|---|
| 原始请求体与混合应用 | Webhook 签名验证、HTTP + 微服务 | faq-raw-body-hybrid |
最佳实践
| 主题 | 描述 | 参考 |
|---|---|---|
| 请求生命周期 | 理解执行顺序与流程 | best-practices-request-lifecycle |
评论
支持 Markdown