Files
mqsrv/README.md
2026-05-09 00:52:04 +08:00

3.7 KiB
Raw Blame History

码枪堂后端 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

注意事项

  1. 生产环境请务必修改 .env 中的密钥
  2. 数据库推荐使用 PostgreSQL
  3. 部署建议配合 PM2 或 Docker