SuperAPI AI 工具集

nestjs-expert

编程与开发

查看项目

更新于 10-15 08:33

技能介绍

Nest.js Expert 是一个专注于 Nest.js 框架的专家型技能,面向企业级 Node.js 应用架构、依赖注入模式、装饰器、中间件、守卫、拦截器、管道、测试策略、数据库集成与鉴权系统。

用途

当需要处理 Nest.js 项目中的架构设计、模块组织、依赖注入、请求生命周期、测试与数据库集成等问题时,可调用该技能。它会在调用时先判断问题是否更适合其他专门专家,例如纯 TypeScript 类型问题、数据库查询优化、Node.js 运行时问题、前端 React 问题,若更匹配则建议切换并停止。

主要能力

  • 模块架构与依赖注入:处理循环依赖、provider 作用域冲突、模块导入等问题,并给出解决优先级:重构模块结构、使用 forwardRef、调整 provider 作用域。
  • 控制器与请求处理:路由冲突、DTO 校验、响应序列化,配合 nest generate controller、class-validator、class-transformer。
  • 中间件、守卫、拦截器与管道:执行顺序(Middleware → Guards → Interceptors(前) → Pipes → 路由处理器 → Interceptors(后))、上下文访问、异步操作与错误处理。
  • 测试策略(Jest 与 Supertest):mock 依赖、测试模块、e2e 测试搭建,使用 @nestjs/testing、Jest、Supertest。
  • 数据库集成(TypeORM 与 Mongoose):连接管理、实体关系、迁移,TypeORM 使用 @nestjs/typeorm、实体装饰器、repository 模式;Mongoose 使用 @nestjs/mongoose、schema 装饰器、模型注入。
  • 鉴权与授权(Passport.js):策略配置、JWT 处理、守卫实现,使用 @nestjs/passport、@nestjs/jwt、passport 策略。
  • 配置与环境管理:@nestjs/config、Joi 校验、异步配置。
  • 错误处理与日志:异常过滤器、日志配置、错误传播,使用内置 Logger 与自定义异常过滤器。

使用方式

技能会先通过内部工具(Read、Grep、Glob)检测 Nest.js 项目设置,识别架构模式与已有模块,再应用 Nest.js 最佳实践给出方案。检测命令示例包括:

  • 检查 Nest.js 设置:test -f nest-cli.json && echo "Nest.js CLI project detected"
  • 检查是否安装框架:grep -q "@nestjs/core" package.json && echo "Nest.js framework installed"
  • 检查 TypeScript 配置:test -f tsconfig.json && echo "TypeScript configuration found"
  • 检测版本:grep "@nestjs/core" package.json | sed 's/.*"\([0-9\.]*\)".*/Nest.js version: \1/'
  • 检测数据库:grep -q "@nestjs/typeorm" package.json && echo "TypeORM integration detected"、grep -q "@nestjs/mongoose" package.json && echo "Mongoose integration detected"、grep -q "@prisma/client" package.json && echo "Prisma ORM detected"
  • 检测鉴权:grep -q "@nestjs/passport" package.json && echo "Passport authentication detected"、grep -q "@nestjs/jwt" package.json && echo "JWT authentication detected"
  • 分析模块结构:find src -name "*.module.ts" -type f | head -5 | xargs -I {} basename {} .module.ts 安全提示:避免 watch/serve 进程,仅使用一次性诊断。 修复验证顺序:npm run build(先类型检查) → npm run test(单元测试) → npm run test:e2e(e2e 测试)。诊断工具还包括 nest info、npm run build -- --watch=false、npm run lint。

适用场景

  • 企业级 Nest.js 应用的架构设计与模块划分。
  • 依赖注入报错排查,如「Nest can't resolve dependencies of the [Service] (?)」「Circular dependency detected」。
  • e2e 测试依赖无法解析、TypeORM 数据库连接失败、未知鉴权策略 'jwt'、secretOrPrivateKey 缺失等问题的定位与修复。
  • 模块导出配置错误(导出模块而非服务)、多数据库连接配置、生产环境内存泄漏排查。

限制

  • 若问题更匹配其他专门专家,该技能会建议切换而非继续处理。
  • NestJS 的依赖注入错误信息出于安全考虑通常较为笼统,可能需要用 verbose 日志或自定义错误信息辅助调试。
  • 文档提到 forwardRef 可能掩盖更深层的设计问题,社区对此有提醒。
  • 具体版本相关回归问题需结合对应版本的 GitHub issue 处理。