# 正丰JSAPI接口 **Repository Path**: stephen_yin/js-api ## Basic Information - **Project Name**: 正丰JSAPI接口 - **Description**: 基于HONO+BUN开发 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-22 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # js-api - PHP SaaS多租户系统迁移项目 基于Hono框架的TypeScript/Node.js实现,从PHP Svick Framework迁移的多租户SaaS管理系统。 ## 🚀 技术栈 - **运行时**: Node.js 18.x LTS - **语言**: TypeScript 5.0+ - **Web框架**: Hono 3.x - **ORM**: Prisma 5.x - **认证**: JWT (jose) - **密码加密**: bcrypt - **日志**: pino - **配置管理**: dotenv ## 📦 项目结构 ``` js-api/ ├── src/ │ ├── app.ts # Hono应用入口 │ ├── index.ts # 服务启动入口 │ ├── config/ # 配置文件 │ ├── types/ # TypeScript类型定义 │ ├── constants/ # 常量和错误码 │ ├── middleware/ # 中间件 │ │ ├── auth.ts # JWT认证中间件 │ │ └── tenant.ts # 租户隔离中间件 │ ├── repositories/ # 数据访问层 │ │ ├── BaseRepository.ts # 基础Repository(租户隔离) │ │ ├── UserRepository.ts │ │ ├── TenantRepository.ts │ │ ├── DeviceRepository.ts │ │ └── SecurityLogRepository.ts │ ├── services/ # 业务服务层 │ │ ├── common/ │ │ │ └── TokenService.ts # JWT Token服务 │ │ └── admin/ │ │ └── AuthService.ts # 平台端认证服务 │ └── utils/ # 工具函数 │ ├── response.ts # 统一响应格式 │ ├── password.ts # 密码加密 │ └── logger.ts # 日志工具 ├── prisma/ │ └── schema.prisma # 数据模型定义 ├── package.json ├── tsconfig.json ├── .env # 环境变量 └── README.md ``` ## 🛠️ 快速开始 ### 1. 安装依赖 ```bash npm install ``` ### 2. 配置环境变量 复制 `.env.example` 到 `.env` 并修改配置: ```bash cp .env.example .env ``` 关键配置项: - `DATABASE_URL`: MySQL数据库连接字符串 - `JWT_SECRET_KEY`: JWT密钥 - `QINIU_ACCESS_KEY`: 七牛云AccessKey - `QINIU_SECRET_KEY`: 七牛云SecretKey ### 3. 生成Prisma客户端 ```bash npx prisma generate ``` ### 4. 启动开发服务器 ```bash npm run dev ``` 服务将在 `http://localhost:8090` 启动。 ## 📝 核心功能 ### ✅ 已实现 - [x] 项目基础架构 - [x] TypeScript类型定义 - [x] 错误码和常量定义 - [x] Prisma数据模型 - [x] BaseRepository(租户隔离核心) - [x] JWT Token服务 - [x] 认证中间件 - [x] 租户隔离中间件 - [x] 平台端认证服务 - [x] Hono应用入口 ### 🚧 待实现 - [ ] 租户端认证服务 - [ ] 用户管理服务 - [ ] 租户管理服务 - [ ] 设备管理服务 - [ ] 模块授权服务 - [ ] 控制器层 - [ ] 路由层 - [ ] 单元测试 - [ ] 集成测试 ## 🔐 租户隔离机制 系统通过 `BaseRepository` 实现自动租户隔离: ```typescript // 平台管理员禁用租户隔离 BaseRepository.setTenantScope(false); // 租户用户启用租户隔离 BaseRepository.setTenantScope(true); BaseRepository.setCurrentTenantId(tenantId); // 所有查询自动追加 tenant_id 条件 ``` ## 📖 API文档 API文档请参考: [docs/api.md](docs/api.md) 迁移指南请参考: [docs/migration.md](docs/migration.md) ## 🧪 测试 ```bash # 运行测试 npm test # 代码检查 npm run lint # 代码格式化 npm run format ``` ## 📄 许可证 MIT ## 👥 联系方式 项目迁移自: zf-api (PHP Svick Framework)