refactor: migrate entire project to TypeScript

This commit is contained in:
2026-02-06 14:44:14 +08:00
parent e98dbcb0f4
commit a80c479027
14 changed files with 1141 additions and 462 deletions

View File

@@ -1,10 +1,11 @@
# 授权管理系统 - 后端服务
浙江贝凡企业授权管理系统的后端服务,基于 Node.js + Express + SQLite。
浙江贝凡企业授权管理系统的后端服务,基于 Node.js + TypeScript + Express + SQLite。
## 技术栈
- **Node.js**: 运行时环境
- **TypeScript**: 类型安全
- **Express**: Web 框架
- **SQLite**: 数据库
- **JWT**: 身份认证
@@ -15,20 +16,23 @@
```
backend/
├── routes/ # API 路由
│ ├── auth.js # 认证路由
│ ├── serials.js # 序列号路由
│ └── companies.js # 企业路由
│ ├── auth.ts # 认证路由
│ ├── serials.ts # 序列号路由
│ └── companies.ts # 企业路由
├── middleware/ # 中间件
│ └── auth.js # 认证中间件
│ └── auth.ts # 认证中间件
├── scripts/ # 脚本
│ └── init-db.js # 数据库初始化
│ └── init-db.ts # 数据库初始化
├── utils/ # 工具函数
│ └── database.js # 数据库连接
│ └── database.ts # 数据库连接
├── types/ # 类型定义
│ └── index.d.ts # TypeScript 类型
├── data/ # 数据文件
│ └── database.sqlite
├── server.js # 服务器入口
├── server.ts # 服务器入口
├── tsconfig.json # TypeScript 配置
├── .env # 环境变量
└── package.json # 项目配置
└── package.json # 项目配置
```
## 安装
@@ -47,6 +51,14 @@ pnpm dev
服务器将在 http://localhost:3000 运行
## 构建
构建 TypeScript 为 JavaScript
```bash
pnpm build
```
## 生产
启动生产服务器:
@@ -83,22 +95,28 @@ JWT_SECRET=your-secret-key-here
### 认证接口
- `POST /api/auth/login` - 用户登录
- `POST /api/auth/logout` - 用户登出
- `GET /api/auth/profile` - 获取用户信息
- `POST /api/auth/change-password` - 修改密码
- `PUT /api/auth/profile` - 更新用户资料
### 序列号接口
- `POST /api/serials/generate` - 生成序列号
- `POST /api/serials/generate-with-prefix` - 使用自定义前缀生成序列号
- `POST /api/serials/:serialNumber/qrcode` - 生成二维码
- `GET /api/serials/:serialNumber/query` - 查询序列号
- `POST /api/serials/:serialNumber/revoke` - 吊销序列号
- `GET /api/serials/` - 获取序列号列表
- `PATCH /api/serials/:serialNumber` - 更新序列号
- `POST /api/serials/:serialNumber/revoke` - 吊销序列号
### 企业接口
- `GET /api/companies/` - 获取企业列表
- `GET /api/companies/:companyName` - 获取企业详情
- `POST /api/companies/:companyName/revoke` - 吊销企业
- `PATCH /api/companies/:companyName` - 更新企业信息
- `DELETE /api/companies/:companyName` - 删除企业
- `DELETE /api/companies/:companyName/serials/:serialNumber` - 删除企业下的序列号
- `POST /api/companies/:companyName/revoke` - 吊销企业
- `GET /api/companies/stats/overview` - 获取统计数据
## License