2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00
2025-09-13 13:02:17 +08:00

circuit-virtual-lab-server

基于 Express + Prisma + PostgreSQL 的“虚拟电路实验室”后端,支持用户系统与“模型广场”。依赖管理使用 Bun。

主要技术

  • Bun运行与依赖管理
  • ExpressHTTP API
  • PrismaORM + PostgreSQL数据库
  • Basic Auth基础认证

环境

在项目根目录创建 .env(示例已提供)并设置:

DATABASE_URL="postgresql://user:pass@host:5432/dbname"
PORT=3000

安装与数据库

bun install
bun run prisma:generate
bun run prisma:migrate -- --name init
bun run db:seed

运行

bun run dev
# 或
bun run start

访问 GET /health 检查存活。

认证

所有需要认证的接口采用 Basic Auth。构造 Authorization: Basic base64(username:password)。 示例种子创建了用户:admin/admin123

API 概览

用户

  • POST /api/users/register,注册 { username, password }
  • GET /api/users/me,获取当前用户(需认证)
  • PUT /api/users/me,更新资料(可含 avatarBase64、avatarMime需认证
  • GET /api/users/:id/avatar,获取头像二进制

模型广场

  • POST /api/models,创建模型(需认证)
  • PUT /api/models/:id,更新模型(需认证且需作者)
  • DELETE /api/models/:id,删除模型(需认证且需作者)
  • GET /api/models/:id,模型详情
  • GET /api/models,列表,支持 queryq、authorId、page、pageSize、sort=new|old
  • GET /api/models/:id/model.json,下载模型 JSON
  • GET /api/models/:id/preview,获取预览图

字段说明

  • 模型title、authorId、descmarkdown、modelJSON、preview二进制
  • 用户username、password哈希、avatar二进制

注意

  • 不使用本地文件持久化,所有数据保存在 PostgreSQL。
  • 预览图与头像以二进制保存在表中,并带 *Mime 字段标注类型。
Description
No description provided
Readme 78 KiB
Languages
TypeScript 100%