这是拼图大师游戏的后端API服务器,基于Node.js + Express框架构建,使用MySQL数据库存储用户数据、游戏记录和成就信息。
- 用户注册、登录和认证系统
- 金币、经验值和等级管理
- 成就系统
- 游戏数据存储和查询
- 排行榜功能
- 安全防护和API限流
- 后端框架: Node.js + Express
- 数据库: MySQL 8.0
- 认证: JWT (JSON Web Token)
- 密码加密: bcryptjs
- API文档: 自动生成的路由文档
- 测试: Jest + Supertest
- 部署: GitHub Actions CI/CD
- Node.js >= 18.0.0
- MySQL 8.0 (支持mysql2驱动)
- npm 或 yarn
npm install# 验证配置、运行迁移和种子数据
npm run setup- 复制环境变量文件:
cp env.example .env- 修改
.env文件中的配置:
# 数据库连接信息
DB_HOST=your-database-host
DB_PORT=3306
DB_NAME=your-database-name
DB_USER=your-database-user
DB_PASSWORD=your-database-password
# JWT密钥(生产环境必须更改!)
JWT_SECRET=your-super-secure-jwt-secret
# 跨域配置
CORS_ORIGIN=http://localhost:5173重要: 生产环境部署请参考 GitHub Secrets配置指南
npm run migrate
npm run seed# 开发环境
npm run dev
# 生产环境
npm startPOST /api/auth/register- 用户注册POST /api/auth/login- 用户登录POST /api/auth/logout- 用户登出GET /api/auth/profile- 获取用户信息
GET /api/users/profile- 获取当前用户信息PUT /api/users/profile- 更新用户信息POST /api/users/rewards- 更新用户奖励(金币、经验)GET /api/users/stats- 获取用户统计信息
GET /api/achievements- 获取所有成就GET /api/achievements/user- 获取用户成就POST /api/achievements/unlock- 解锁成就
GET /api/games/history- 获取游戏历史POST /api/games/complete- 记录游戏完成GET /api/games/leaderboard- 获取排行榜
users- 用户基本信息user_stats- 用户统计数据achievements- 成就定义user_achievements- 用户成就记录game_records- 游戏记录leaderboard- 排行榜
docker build -t puzzle-master-backend .
docker run -d -p 3001:3001 puzzle-master-backend- 确保MySQL服务正常运行
- 配置生产环境变量
- 运行数据库迁移
- 启动服务器
- 使用ES6+语法
- 遵循RESTful API设计
- 错误处理和日志记录
- 输入验证和安全防护
npm test- JWT token认证
- 密码哈希加密
- API限流防护
- 输入验证
- CORS配置
- Helmet安全头
- Fork项目
- 创建功能分支
- 提交代码
- 发起Pull Request
MIT License