源码树和文件组织
现有项目结构
d8d-starter/
├── src/
│ ├── client/ # React前端代码
│ │ ├── admin/ # 管理后台界面
│ │ ├── home/ # 用户主页界面
│ │ ├── components/ # 共享组件
│ │ ├── hooks/ # React Hooks
│ │ └── lib/ # 工具库
│ ├── server/ # Node.js后端代码
│ │ ├── api/ # API路由处理
│ │ │ ├── auth/ # 认证路由
│ │ │ ├── users/ # 用户管理路由
│ │ │ └── roles/ # 角色管理路由
│ │ ├── modules/ # 业务模块
│ │ ├── middleware/ # 中间件
│ │ ├── types/ # TypeScript类型
│ │ └── utils/ # 工具函数
│ └── share/ # 前后端共享代码
新文件组织
d8d-starter/
├── src/
│ ├── client/ # 现有结构保持不变
│ ├── server/
│ │ ├── api/
│ │ │ ├── users/
│ │ │ │ ├── __tests__/ # 新增:API测试
│ │ │ │ ├── [id]/
│ │ │ │ ├── get.ts
│ │ │ │ └── index.ts
│ │ ├── modules/
│ │ │ ├── users/
│ │ │ │ ├── __tests__/ # 新增:服务测试
│ │ │ │ ├── user.entity.ts
│ │ │ │ ├── user.service.ts
│ │ │ │ └── role.entity.ts
│ │ └── utils/
│ │ ├── __tests__/ # 新增:工具测试
│ │ ├── generic-crud.service.ts
│ │ ├── generic-crud.routes.ts
│ │ └── errorHandler.ts # 需要增强的错误处理
│ └── share/ # 现有结构保持不变
集成指南
- 文件命名: 保持现有kebab-case命名约定
- 文件夹组织: 遵循功能模块划分,添加tests文件夹
- 导入/导出模式: 使用ES模块,保持现有别名系统(@/)