摄影设备借还系统 - 后端
技术栈
- Node.js + Express
- TypeScript
- Prisma ORM
- MySQL 8.0
开发
- 安装依赖
npm install
- 配置数据库
编辑
.env文件,设置数据库连接:
DATABASE_URL="mysql://root:password@localhost:3306/equipment_management?charset=utf8mb4"
- 初始化数据库
npx prisma generate
npx prisma migrate dev
- 启动开发服务器
npm run dev
API文档
API基础路径: http://localhost:3000/api
主要接口
/api/equipment- 设备管理/api/borrow- 借用管理/api/return- 归还管理/api/statistics- 统计分析/api/barcode- 条码生成/api/auth- 用户认证
环境变量
.env 文件示例:
DATABASE_URL="mysql://root:password@localhost:3306/equipment_management?charset=utf8mb4"
SESSION_SECRET=equipment-management-secret
KEYCLOAK_URL=http://localhost:8080
KEYCLOAK_REALM=equipment-management
KEYCLOAK_CLIENT_ID=equipment-client
# 可选:若为机密客户端
# KEYCLOAK_CLIENT_SECRET=your-client-secret
Keycloak 集成
后端使用 keycloak-connect 保护接口、管理用户信息。部署步骤:
- 使用 Docker 启动 Keycloak(示例):
docker run -d \
--name keycloak \
-p 8080:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
quay.io/keycloak/keycloak:23.0.7 start-dev
- 在 Keycloak 中创建 Realm
equipment-management - 创建客户端
equipment-client- 类型:Public Client(或使用 Confidential 并设置
KEYCLOAK_CLIENT_SECRET) - 有效重定向 URI:
http://localhost:5173/*
- 类型:Public Client(或使用 Confidential 并设置
- 创建用户并分配角色(如
admin、user)
后端接口自动验证 Bearer Token,无需额外登录接口。