a80c4790273532270a84c5cfc3b75f54fd23a094
授权管理系统 - 后端服务
浙江贝凡企业授权管理系统的后端服务,基于 Node.js + TypeScript + Express + SQLite。
技术栈
- Node.js: 运行时环境
- TypeScript: 类型安全
- Express: Web 框架
- SQLite: 数据库
- JWT: 身份认证
- bcryptjs: 密码加密
项目结构
backend/
├── routes/ # API 路由
│ ├── auth.ts # 认证路由
│ ├── serials.ts # 序列号路由
│ └── companies.ts # 企业路由
├── middleware/ # 中间件
│ └── auth.ts # 认证中间件
├── scripts/ # 脚本
│ └── init-db.ts # 数据库初始化
├── utils/ # 工具函数
│ └── database.ts # 数据库连接
├── types/ # 类型定义
│ └── index.d.ts # TypeScript 类型
├── data/ # 数据文件
│ └── database.sqlite
├── server.ts # 服务器入口
├── tsconfig.json # TypeScript 配置
├── .env # 环境变量
└── package.json # 项目配置
安装
pnpm install
开发
启动开发服务器(支持热重载):
pnpm dev
服务器将在 http://localhost:3000 运行
构建
构建 TypeScript 为 JavaScript:
pnpm build
生产
启动生产服务器:
pnpm start
数据库初始化
初始化数据库和默认管理员账户:
pnpm init-db
环境变量
创建 .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
Description
Languages
TypeScript
100%