NestJS BBS 实战教程:从模块化到测试与日志
通过 11 节课程构建 BBS 论坛,依次学习模块化、参数校验、仓储、认证授权、领域建模、接口规范与工程交付。
最近的记录THE JOURNAL
17 篇文章NestJS BBS 实战教程:从模块化到测试与日志
通过 11 节课程构建 BBS 论坛,依次学习模块化、参数校验、仓储、认证授权、领域建模、接口规范与工程交付。
3 分钟阅读把复杂留给自己,把简单留给用户
好的产品不一定拥有更多功能。最近的一次小项目,让我重新思考「简单」这件事。
2 分钟阅读让 AI 成为思考的搭档,而不只是答案机器
比起「帮我写一个答案」,我开始更多地问它:这个问题,还可以怎样理解?
1 分钟阅读一次没有目的地的散步
关掉导航,走进一条平时不会走的小路。原来熟悉的城市,也藏着未读的章节。
1 分钟阅读小工具,也可以有自己的性格
从一个只解决自己问题的脚本开始,聊聊那些小而确定的创造乐趣。
1 分钟阅读读得慢一点,记得深一点
不再用读完多少本来衡量阅读。留下一个真正影响自己的想法,就已经很好。
1 分钟阅读NestJS 实战 01:项目初始化与模块化分层
创建一个可运行的 NestJS BBS 项目。搭建 UsersModule,提供最小可用接口:POST /users、GET /users、GET /users/:id。建立你对 Nest 核心分层的第一套心智模型:Module -> Controlle…
15 分钟阅读NestJS 实战 02:DTO 与 ValidationPipe 参数校验
把用户创建接口从“裸对象接收”升级为“受约束输入”。开启全局 ValidationPipe,让非法请求在入口就被拦截。理解为什么校验要放在 Controller 入口层,而不是分散在 Service。
17 分钟阅读NestJS 实战 03:Repository 抽象与可替换存储
把 UsersService 从“直接操作数组”升级为“依赖仓储接口”。引入 UsersRepository 抽象,默认使用内存实现。为后续切换数据库(Prisma/TypeORM)做无痛准备。
11 分钟阅读NestJS 实战 04:ConfigModule 与基础数据库生命周期
接入全局配置管理,统一读取环境变量。引入 DatabaseModule 和 DatabaseService。学会在 Nest 中管理资源生命周期(启动连接、退出释放)。
14 分钟阅读NestJS 实战 05:注册登录与 JWT 鉴权
实现 register 与 login 两条认证流程。登录后签发 JWT Token,并支持读取当前用户信息。建立 BBS 的身份认证主链路。
29 分钟阅读NestJS 实战 06:Guard、Decorator 与 RBAC 权限控制
在“已登录”的基础上增加“有权限才可访问”。定义角色模型:user、moderator、admin。实现管理员改角色、版主删帖等受控接口。
12 分钟阅读NestJS 实战 07:BBS 核心域模型(板块、主题、回复)
实现论坛核心三域:boards、threads、replies。支持发帖、回帖、按板块分页看主题。用领域模块拆分,保持结构可扩展。
10 分钟阅读NestJS 实战 08:Interceptor 与 Exception Filter 统一响应风格
把所有成功响应统一封装为 { data, meta }。把所有异常响应统一封装为 { code, message, path, timestamp }。让 API 风格稳定,便于前端和日志平台处理。
11 分钟阅读NestJS 实战 09:Swagger 文档、限流与缓存
生成可访问的 API 文档页面。对全局请求启用限流保护,核心接口可单独调优。对热点查询接口加缓存,减少重复计算。
11 分钟阅读NestJS 实战 10:单元测试、E2E 测试与交付标准
用单元测试保护关键业务规则。用 E2E 测试覆盖关键使用路径。建立可交付能力:构建、测试、容器化。
11 分钟阅读NestJS 实战 11:日志、请求链路追踪与问题排查
让 BBS 项目具备稳定的日志能力,方便排查线上与开发环境中的问题。统一记录关键日志:应用启动、HTTP 请求、业务异常、数据库错误。为每次请求挂上 requestId,把同一次请求中的多条日志串起来。建立“什么时候该打日志、打什么日志、哪些内容不能打”…
27 分钟阅读