Files
backend-node/README.md

137 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 溯源管理平台 - 后端服务
浙江贝凡溯源管理平台的后端服务,基于 NestJS + TypeScript + SQLite。
## 技术栈
- **NestJS**: 渐进式 Node.js 框架
- **TypeScript**: 类型安全
- **SQLite**: 轻量级数据库
- **JWT**: 身份认证
- **bcryptjs**: 密码加密
## 项目结构
```
backend/
├── src/
│ ├── auth/ # 认证模块
│ │ ├── auth.controller.ts
│ │ ├── auth.guard.ts
│ │ ├── auth.module.ts
│ │ ├── auth.service.ts
│ │ └── dto/
│ ├── companies/ # 企业模块
│ │ ├── companies.controller.ts
│ │ ├── companies.module.ts
│ │ └── companies.service.ts
│ ├── database/ # 数据库模块
│ │ ├── database.module.ts
│ │ └── database.service.ts
│ ├── serials/ # 序列号模块
│ │ ├── serials.controller.ts
│ │ ├── serials.module.ts
│ │ ├── serials.service.ts
│ │ └── dto/
│ ├── types/ # 类型定义
│ │ └── index.d.ts
│ ├── utils/ # 工具函数
│ ├── app.module.ts # 根模块
│ ├── health.controller.ts
│ └── main.ts # 应用入口
├── data/ # 数据文件
├── scripts/ # 脚本
├── .env # 环境变量
├── package.json
├── tsconfig.json
└── README.md
```
## 安装
```bash
pnpm install
```
## 开发
启动开发服务器(支持热重载):
```bash
pnpm start:dev
```
服务器将在 http://localhost:3000 运行
## 构建
构建 TypeScript 为 JavaScript
```bash
pnpm build
```
## 生产
启动生产服务器:
```bash
pnpm start:prod
```
## 数据库初始化
初始化数据库和默认管理员账户:
```bash
pnpm init-db
```
## 环境变量
创建 `.env` 文件:
```env
PORT=3000
JWT_SECRET=your-secret-key-here
```
## 默认账户
初始化后默认创建的管理员账户:
- 用户名: admin
- 密码: Beifan@2026
## API 接口
### 认证接口
- `POST /api/auth/login` - 用户登录
- `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` - 查询序列号
- `GET /api/serials/` - 获取序列号列表
- `PATCH /api/serials/:serialNumber` - 更新序列号
- `POST /api/serials/:serialNumber/revoke` - 吊销序列号
### 企业接口
- `GET /api/companies/` - 获取企业列表
- `GET /api/companies/:companyName` - 获取企业详情
- `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
MIT