EduNexus Backend API
后端API服务,基于Express + Prisma + MySQL。
快速开始
1. 安装依赖
cd backend
npm install
2. 配置环境变量
复制.env.example为.env并配置数据库连接:
cp .env.example .env
编辑.env:
DATABASE_URL="mysql://用户名:密码@localhost:3306/edunexus"
3. 初始化数据库
# 生成Prisma客户端
npm run prisma:generate
# 同步数据库schema
npm run prisma:push
4. (可选) 导入示例数据
在MySQL中执行:
mysql -u root -p edunexus < ../database/seed.sql
5. 启动服务器
# 开发模式
npm run dev
# 生产模式
npm run build
npm start
服务器将在 http://localhost:3001 启动
API端点
Auth /api/auth
POST /register- 注册POST /login- 登录GET /profile- 获取个人信息 🔒PUT /profile- 更新个人信息 🔒POST /change-password- 修改密码 🔒
Exams /api/exams
GET /- 获取试卷列表 🔒GET /:id- 获取试卷详情 🔒POST /- 创建试卷 🔒PUT /:id- 更新试卷 🔒DELETE /:id- 删除试卷 🔒POST /:id/nodes- 添加节点 🔒PUT /:id/nodes/:nodeId- 更新节点 🔒DELETE /:id/nodes/:nodeId- 删除节点 🔒
其他模块
/api/org- 组织架构 (TODO)/api/curriculum- 教材知识 (TODO)/api/questions- 题库 (TODO)/api/assignments- 作业 (TODO)/api/submissions- 提交 (TODO)/api/grading- 批阅 (TODO)
🔒 = 需要JWT认证
认证
API使用JWT Bearer Token认证。
- 调用
/api/auth/login获取token - 在请求头中添加:
Authorization: Bearer <token>
项目结构
backend/
├── src/
│ ├── controllers/ # 控制器
│ ├── routes/ # 路由
│ ├── middleware/ # 中间件
│ ├── utils/ # 工具函数
│ └── index.ts # 入口文件
├── prisma/
│ └── schema.prisma # Prisma模型定义
└── package.json
数据库
使用Prisma ORM管理MySQL数据库:
# 查看数据库
npm run prisma:studio
# 创建迁移
npm run prisma:migrate
# 重置数据库
npm run prisma:push
开发指南
- 所有API返回JSON格式
- 使用UUID作为主键
- 支持软删除 (isDeleted字段)
- 所有表包含审计字段
- ExamNode支持无限层级嵌套
待完成
- 完善其他6个模块的API实现
- 添加数据验证中间件
- 实现文件上传功能
- 添加单元测试
- 添加API文档(Swagger)