这是我系统学习 NestJS 后,首次将理论认知完整落地的一次全栈实践。从需求分析、数据库设计、接口文档到编码实现,0 到 1 独立完成后端为主的全栈博客系统。基于 NestJS 构建项目后端,覆盖 JWT 认证、RBAC 三层角色鉴权、文章/点赞/评论/用户冻结等核心业务;落地数据库迁移与 Seeder、统一响应与异常映射、参数校验、限流、安全头、Swagger 文档等工程化能力。
功能亮点:
1.认证与鉴权:JWT 签发校验 + bcrypt 加密,RolesGuard + @Roles() 装饰器实现声明式 RBAC,游客/用户/管理员三级权限服务端强制校验。
2.点赞接口幂等:单一接口toggle点赞,以 (user_id, article_id) 唯一复合索引从数据库层保证幂等,并发下不会重复点赞。
3. 异常体系:双层全局 ExceptionFilter,将唯一冲突/外键/NOT NULL 等数据库异常按优先级映射为 409/400 语义化状态码,统一 {code, message, data} 响应结构,避免底层异常外泄。
4. 数据治理:2 版迁移管理 schema 演进(含新增用户冻结字段),Seeder 初始化管理员账号;4 张表外键级联删除关系完整。
5. 生产意识:helmet 安全头、全局限流防刷、class-validator 参数白名单校验、Swagger 自动文档、PM2 进程管理。
6. 声明式路由权限:路由表通过 requiresAuth / requiresAdmin / requiresGuest 声明权限,统一守卫函数处理未登录/非管理员重定向,与后端 RBAC 角色联动,前后端双重控制。
点击空白处退出提示










评论