用途:这是 RedisInsight API 的 NestJS 后端开发模式指南,用于在该项目中编写和维护后端代码时保持一致的架构与风格。
主要能力与规范:采用基于功能的模块化架构,每个功能模块放在 api/src/ 下独立目录,包含 module、controller、service、types、dto、entities、repositories、exceptions、guards、decorators、constants 等文件,并给出统一命名约定。分层上要求控制器保持轻薄、业务逻辑放在服务层,全程使用依赖注入,通过 TypeORM 仓库访问数据,用 DTO 做校验与传输。
用法要点:服务通过构造函数注入依赖,例如 @InjectRepository(User) 与自定义服务;控制器使用 @Get、@Post、@Body、@Param、@Query、@UseGuards 等装饰器,并用 @HttpCode 指定非标准状态码。DTO 使用 class-validator 装饰器(如 @IsString、@IsNotEmpty、@IsOptional、@MinLength、@MaxLength、@Min、@Max)和 Swagger 的 @ApiProperty。错误处理使用 NestJS 内置异常(NotFoundException、BadRequestException、UnauthorizedException、ForbiddenException、ConflictException、InternalServerErrorException),需要统一错误码时按既有模式创建自定义异常,并用 Logger 记录重要操作。Redis 集成使用 src/modules/redis 的 RedisClient,需优雅处理错误并记录操作。
适用场景:为 RedisInsight API 新增或修改功能模块、接口、校验与错误处理时参考。
限制与要求:认知复杂度需不超过 15,避免重复字符串并抽取到常量文件,导入顺序为 Node 内置模块、外部依赖、内部模块(src/* 别名)、本地相对导入;Swagger 需包含 @ApiTags、@ApiOperation、@ApiResponse、@ApiParam、@ApiQuery、@ApiBearerAuth 等装饰器。资料未提供具体版本、安装命令或运行步骤。