3b3ade6a97a24d21b45adfd58ef8c256cdd501a9
码枪堂后端 API
基于 Express + Prisma + PostgreSQL 的后端服务。
快速开始
1. 安装依赖
pnpm install
# 或
npm install
2. 配置环境变量
cp .env.example .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. 初始化数据库
# 生成 Prisma Client
pnpm db:generate
# 同步数据库结构
pnpm db:push
# 生成种子数据(VIP卡密等)
pnpm db:seed
4. 启动服务
# 开发模式(热重载)
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 卡密管理
生成卡密
运行种子脚本会自动生成卡密:
pnpm db:seed
生成的卡密格式:
- 月卡:
VIP30-XXXX-XXXX-XXXX-XXXX - 季卡:
VIP90-XXXX-XXXX-XXXX-XXXX - 年卡:
VIP365-XXXX-XXXX-XXXX-XXXX
查询卡密
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
注意事项
- 生产环境请务必修改
.env中的密钥 - 数据库推荐使用 PostgreSQL
- 部署建议配合 PM2 或 Docker
Description
Languages
TypeScript
74.6%
Python
24.7%
Dockerfile
0.6%
Shell
0.1%