nestjs
关于
This Claude skill provides NestJS best practices and architectural patterns for building scalable applications. It helps implement domain-driven design, dependency injection, and decorator patterns while ensuring proper module structure and layer separation. Use it when developing NestJS projects to master core features like Guards, Interceptors, Pipes, and building REST/GraphQL APIs.
技能文档
NestJS Development Standards
모듈 구성 원칙
도메인 중심 모듈화
기능별이 아닌 비즈니스 도메인별로 모듈을 구성함.
- ❌ Bad:
controllers/,services/,repositories/ - ✅ Good:
users/,products/,orders/
단일 책임 모듈
하나의 모듈은 하나의 도메인만 담당함.
- 공통 기능은
common/또는shared/등 공용 모듈로 분리 - 도메인 간 통신은 반드시 Service를 통해서만
의존성 주입 규칙
생성자 주입만 사용
속성 주입(@Inject)은 금지.
// ✅ Good
constructor(private readonly userService: UserService) {}
// ❌ Bad
@Inject() userService: UserService;
Provider 등록 위치
Provider는 사용되는 모듈에서만 등록함.
- Global provider는 최소화
- forRoot/forRootAsync는 AppModule에서만 사용
데코레이터 사용 규칙
커스텀 데코레이터 우선
반복되는 데코레이터 조합은 커스텀 데코레이터로 추상화함.
// 3개 이상 데코레이터 조합 시 커스텀 데코레이터 생성
@Auth() // @UseGuards + @ApiBearerAuth + @CurrentUser 통합
데코레이터 순서
위에서 아래로 실행 순서대로 배치함.
- 메타데이터 데코레이터 (@ApiTags, @Controller, @Resolver)
- 가드/인터셉터 (@UseGuards, @UseInterceptors)
- 라우트 데코레이터 (@Get, @Post, @Query, @Mutation)
- 파라미터 데코레이터 (@Body, @Param, @Args)
DTO/Entity 규칙
DTO는 순수 데이터 전송만
비즈니스 로직 금지, validation만 허용함.
// ✅ Good: Validation만
class CreateUserDto {
@IsEmail()
email: string;
}
// ❌ Bad: 비즈니스 로직 포함
class CreateUserDto {
toEntity(): User {} // 금지
}
Entity와 DTO 분리
Entity를 직접 반환하지 않고 항상 DTO로 변환함.
- Request: CreateInput, UpdateInput (GraphQL) / CreateDto, UpdateDto (REST)
- Response: Type 정의 또는 plain object
에러 처리
도메인별 Exception Filter
각 도메인은 자체 Exception Filter를 가짐.
@Module({
providers: [
{
provide: APP_FILTER,
useClass: UserExceptionFilter,
},
],
})
명시적 에러 throw
모든 에러 상황에서 명시적으로 Exception을 throw함.
- REST: HttpException 계열 사용
- GraphQL: GraphQLError 또는 커스텀 에러 사용
- 암묵적 null/undefined 반환 금지
- 에러 메시지는 사용자가 이해할 수 있는 수준으로
快速安装
/plugin add https://github.com/KubrickCode/ai-config-toolkit/tree/main/nestjs在 Claude Code 中复制并粘贴此命令以安装该技能
GitHub 仓库
相关推荐技能
evaluating-llms-harness
测试该Skill通过60+个学术基准测试(如MMLU、GSM8K等)评估大语言模型质量,适用于模型对比、学术研究及训练进度追踪。它支持HuggingFace、vLLM和API接口,被EleutherAI等行业领先机构广泛采用。开发者可通过简单命令行快速对模型进行多任务批量评估。
langchain
元LangChain是一个用于构建LLM应用程序的框架,支持智能体、链和RAG应用开发。它提供多模型提供商支持、500+工具集成、记忆管理和向量检索等核心功能。开发者可用它快速构建聊天机器人、问答系统和自主代理,适用于从原型验证到生产部署的全流程。
golang
元这个Claude Skill提供地道的Go编程专业知识和最佳实践,确保代码遵循官方规范。它擅长并发编程、接口设计、错误处理和性能优化等核心领域。适用于编写Go代码、设计API、实现并发模式、管理依赖和优化关键代码等各种开发场景。
nestjs
元这个Claude Skill为NestJS开发提供框架标准和架构模式指导,特别擅长领域驱动设计和模块化架构。它能帮助开发者正确使用依赖注入、装饰器模式,以及构建中间件、守卫、拦截器等核心组件。适用于创建控制器、服务、REST/GraphQL API、微服务架构,以及与TypeORM/Prisma的数据库集成。
