要精通 nest.js 要掌握那些

49 阅读3分钟

要精通 nest.js 要掌握那些

ChatGPT 说:

下面我给你一个 从入门到精通 Nest.js 的完整技能体系清单,只要照这条路线学,你绝对能从普通 CRUD 工程师 → 成为能写企业级后端的高手。

我按 重要程度 + 实际项目需求 来排优先级,100% 实用。


✅ 一、基础必须掌握(核心能力)

这些是 Nest.js 的基础,不掌握就写不动项目:

1. Nest.js 核心概念

  • Module(模块)
  • Controller(控制器)
  • Service(业务逻辑)
  • Provider(依赖注入)
  • Pipe(参数验证)
  • Guard(权限守卫)
  • Interceptor(拦截器)
  • Middleware(中间件)
  • Filter(异常过滤器)

👉 优先掌握:模块、控制器、服务、依赖注入
👉 进阶掌握:Guard / Interceptor / Pipe


✅ 二、TypeScript(Nest.js 的灵魂)

要精通 Nest.js,必须能掌握:

  • interface / type
  • class
  • 泛型(简单掌握)
  • 装饰器(Nest 全靠装饰器写)
  • Promise / async / await
  • OOP 继承、依赖注入思想

TS 不需要学太深,但必须会写、看懂别人写的代码。


✅ 三、数据库(企业级必须)

Nest.js 连接数据库有三种方式:

1)TypeORM(最常见)

✔ entity
✔ repository
✔ find / save / update / delete
✔ join 查询
✔ 一对多、多对多
✔ 事务(transaction)

2)Prisma(更现代)

非常好用,但国内用得不多。

3)原生 SQL(你现在这种)

✔ query
✔ 参数绑定
✔ 防注入
✔ 数据返回类型

企业项目中:TypeORM 使用最多


✅ 四、认证 & 权限(重点)

企业级项目必须实现:

(1)JWT 登录认证

  • 登录返回 token
  • token 解析
  • token 中间件或 guard
  • 刷新 token

(2)RBAC 权限控制

你现在正在做的:

  • 用户表
  • 角色表
  • 权限表
  • 用户角色关联表
  • 角色权限关联表
  • Guard 做权限判断

这块是高级难度,但非常重要。


✅ 五、异常处理体系

  • 全局异常过滤器
  • 自定义异常
  • 全局响应格式封装(包装成统一的 JSON)

✅ 六、拦截器(高级)

常用拦截器:

  • 日志拦截器(记录请求耗时)
  • 转换响应数据格式
  • 对缓存做拦截(例如 Redis)

✅ 七、Middleware 中间件

常用于:

  • 记录日志
  • CORS 设置
  • 验证签名

✅ 八、验证(ValidationPipe)

用 class-validator 做 DTO 验证:

  • IsString
  • IsNumber
  • IsOptional
  • IsNotEmpty
  • IsEmail
  • Min / Max

你已经接触到了,比如 email 不能为 null。


✅ 九、配置管理(ConfigModule)

需要掌握:

  • .env 环境变量
  • 开发、测试、生产环境分离
  • 数据库配置

✅ 十、文件上传(实际项目常用)

  • 接收图片、Excel、PDF
  • 传到七牛云 / 阿里云 OSS / 腾讯 COS

✅ 十一、Redis(缓存必须)

  • Token 黑名单
  • 接口缓存
  • 防止频繁登录
  • 验证码冷却时间

Nest 有现成的 redis 模块。


✅ 十二、Swagger 接口文档

企业项目必备。

学习:

  • 装饰器 @ApiProperty
  • 自动生成接口文档
  • 参数描述

✅ 十三、WebSocket

实时项目会用:

  • 即时聊天
  • 传感器设备数据推送
  • 实时通知

✅ 十四、单元测试(可选,但企业要求)

  • Jest
  • Controller / Service 测试

🎯 最终达到「精通」的能力

你能写:

  • 企业级登录系统
  • RBAC 权限系统
  • 复杂 RESTful API
  • 原生 SQL + TypeORM 双精通
  • 完整数据库结构
  • 日志系统
  • 异常处理
  • 完整打包部署
  • Docker 运行 Nest.js

这就是高级 Nest.js 工程师。