# 码枪堂后端 API 基于 Express + Prisma + PostgreSQL 的后端服务。 ## 快速开始 ### 1. 安装依赖 ```bash pnpm install # 或 npm install ``` ### 2. 配置环境变量 ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```env # 数据库连接 DATABASE_URL="postgresql://postgres:password@localhost:5432/maqt?schema=public" # JWT 密钥(请修改为随机字符串) JWT_SECRET="your-super-secret-jwt-key-change-this-in-production" # 数据加密密钥(32字节) ENCRYPTION_KEY="0123456789abcdef0123456789abcdef" # 服务端口 PORT=3001 ``` ### 3. 初始化数据库 ```bash # 生成 Prisma Client pnpm db:generate # 同步数据库结构 pnpm db:push # 生成种子数据(VIP卡密等) pnpm db:seed ``` ### 4. 启动服务 ```bash # 开发模式(热重载) pnpm dev # 生产模式 pnpm build pnpm start ``` ## API 接口 ### 认证 | 接口 | 方法 | 说明 | |------|------|------| | `/api/register` | POST | 注册用户 | | `/api/login` | POST | 用户登录 | | `/api/session-status` | GET | 会话状态 | | `/api/vip-status` | GET | VIP 状态 | | `/api/activate-vip` | POST | VIP 卡密激活 | ### 用户管理 | 接口 | 方法 | 说明 | |------|------|------| | `/api/user/username` | PUT | 更新用户名 | | `/api/user/email` | PUT | 更新邮箱 | | `/api/user/avatar` | PUT | 更新头像 | | `/api/user/stats/:userId` | GET | 用户统计 | | `/api/user/schemes/:userId` | GET | 用户方案列表 | ### 方案分享 | 接口 | 方法 | 说明 | |------|------|------| | `/api/schemes/` | GET | 烽火地带方案列表 | | `/api/schemes/:id` | GET | 方案详情 | | `/api/schemes/` | POST | 创建方案 | | `/api/schemes/:id` | DELETE | 删除方案 | | `/api/schemes_aob/` | GET | 全面战场方案列表 | | `/api/schemes_aob/:id` | GET | 方案详情 | | `/api/schemes_aob/` | POST | 创建方案 | ### 滤镜分享 | 接口 | 方法 | 说明 | |------|------|------| | `/api/filter-shares/` | GET | 滤镜列表 | | `/api/filter-shares/:id` | GET | 滤镜详情 | | `/api/filter-shares/` | POST | 创建滤镜 | | `/api/filter-shares/:id` | DELETE | 删除滤镜 | ### 收藏 | 接口 | 方法 | 说明 | |------|------|------| | `/api/favorites/` | GET | 收藏列表 | | `/api/favorites/` | POST | 添加收藏 | | `/api/favorites/:id` | DELETE | 取消收藏 | | `/api/favorites/check` | GET | 检查是否收藏 | ## VIP 卡密管理 ### 生成卡密 运行种子脚本会自动生成卡密: ```bash pnpm db:seed ``` 生成的卡密格式: - 月卡:`VIP30-XXXX-XXXX-XXXX-XXXX` - 季卡:`VIP90-XXXX-XXXX-XXXX-XXXX` - 年卡:`VIP365-XXXX-XXXX-XXXX-XXXX` ### 查询卡密 ```bash npx prisma studio ``` 打开 Prisma Studio 可视化管理数据库。 ## 项目结构 ``` maqt-backend/ ├── prisma/ │ ├── schema.prisma # 数据库模型 │ └── seed.ts # 种子数据 ├── src/ │ ├── index.ts # 主入口 │ ├── middleware/ │ │ └── auth.ts # 认证中间件 │ ├── routes/ │ │ ├── auth.ts # 认证路由 │ │ ├── user.ts # 用户路由 │ │ ├── schemes.ts # 烽火地带方案 │ │ ├── schemesAob.ts# 全面战场方案 │ │ ├── filters.ts # 滤镜分享 │ │ ├── favorites.ts # 收藏 │ │ └── vip.ts # VIP 激活 │ └── utils/ │ ├── jwt.ts # JWT 工具 │ └── encryption.ts# 加密工具 ├── package.json ├── tsconfig.json └── .env.example ``` ## 注意事项 1. **生产环境**请务必修改 `.env` 中的密钥 2. **数据库**推荐使用 PostgreSQL 3. **部署**建议配合 PM2 或 Docker