/** * 用户模块 * * 功能描述: * - 整合用户相关的实体、服务和控制器 * - 配置TypeORM实体和Repository * - 支持数据库和内存存储的动态切换 * - 导出用户服务供其他模块使用 * * 职责分离: * - 模块配置:动态模块的创建和依赖注入配置 * - 存储切换:数据库模式和内存模式的灵活切换 * - 服务导出:统一的服务接口导出和类型安全 * - 依赖管理:模块间依赖关系的清晰定义 * * 存储模式: * - 数据库模式:使用TypeORM连接MySQL数据库 * - 内存模式:使用Map存储,适用于开发和测试 * * 最近修改: * - 2026-01-07: 代码规范优化 - 完善注释规范,添加完整的文件头和方法注释 * - 2025-12-17: 功能新增 - 添加双存储模式支持,by angjustinl * * @author moyin * @version 1.0.1 * @since 2025-12-17 * @lastModified 2026-01-07 */ import { Module, DynamicModule, Global } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { Users } from './users.entity'; import { UsersService } from './users.service'; import { UsersMemoryService } from './users_memory.service'; @Global() @Module({}) export class UsersModule { /** * 创建数据库模式的用户模块 * * @returns 配置了TypeORM的动态模块 */ static forDatabase(): DynamicModule { return { module: UsersModule, imports: [TypeOrmModule.forFeature([Users])], providers: [ { provide: 'UsersService', useClass: UsersService, }, ], exports: ['UsersService', TypeOrmModule], }; } /** * 创建内存模式的用户模块 * * @returns 配置了内存存储的动态模块 */ static forMemory(): DynamicModule { return { module: UsersModule, providers: [ { provide: 'UsersService', useClass: UsersMemoryService, }, ], exports: ['UsersService'], }; } }