# fakc **Repository Path**: xfnotes/fa ## Basic Information - **Project Name**: fakc - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-28 - **Last Updated**: 2025-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目结构 ```bash ├── backend/ # Express 后端服务 │ ├── src/ │ │ ├── controllers/ # API控制器 │ │ ├── models/ # Mongoose数据模型 │ │ ├── routes/ # Express路由 │ │ ├── utils/ # 工具类 │ │ │ └── db/ # 数据库配置 │ │ │ ├── config.js # 数据库连接配置 │ │ │ └── mongoose.js # Mongoose实例 │ │ ├── app.js # Express应用配置 │ │ └── server.js # 服务入口 │ │ │ ├── package.json # 后端依赖 │ └── .env # 环境变量 │ ├── frontend-src/ # Vue3 前端项目 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── components/ # 公共组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia状态管理 │ │ ├── services/ # API服务 │ │ └── assets/ # 静态资源 │ │ │ ├── vite.config.js # 构建配置 │ ├── package.json # 前端依赖 │ └── .env # 前端环境变量 │ ├── mongodb/ # MongoDB数据存储 │ └── logs/ │ └── mongod.log # 数据库日志 │ ├── API.md # 接口文档 └── README.md # 项目文档 ``` # 技术栈 - **前端**: Vue3 + Element Plus + Pinia - **前端第三方工具**: Axios + Vuex + Vue Router - **构建工具**: Vite - **后端**: Express + Mongoose - **后端中间件**: Express-async-handler - **数据库**: MongoDB # 最近更新 ## 2025-04-30 - 重构项目文档结构 - 完善API文档体系: - 主文档:API.md - 模块文档: - 知识树管理:/backend/src/docs/knowledgeTree.api.md - 题目管理:/backend/src/docs/questions.api.md - 用户认证:/backend/src/docs/auth.api.md # 开发指南 ## 环境要求 - Node.js 18+ - MongoDB 6+ - 推荐使用VSCode编辑器 ## 快速启动 ```bash # 后端服务 cd backend cnpm install node src/server.js # 前端开发 cd ../frontend-src cnpm install cnpm run dev ``` ## 图片上传配置 1. 安装依赖: ```bash cd backend cnpm install multer --save ``` 2. 在题目控制器(questionController.js)中添加: ```javascript const upload = multer({ dest: 'uploads/' }); router.post('/upload', upload.single('image'), (req, res) => { res.json({ path: req.file.path }); } ); ``` ## 富文本集成 ```bash cd frontend-src cnpm install @tinymce/tinymce-vue dompurify --save ``` ## 依然存在的问题 1. questionTypeController.js: - 在updateQuestionType方法中,select()参数包含了不存在的字段 'value active' - Swagger schema中缺少了 QuestionTypeUpdate 的定义 2. questionSourceController.js: - createSource 方法的响应结构与swagger描述不一致,swagger中使用content字段,而代码返回sourceContent - 缺少了一些错误状态码的swagger描述(409冲突等) 3. questionController.js: - 文件上传相关的swagger注释不完整,缺少文件大小限制说明 - 创建题目时的数据验证可以更严格,比如points的范围验证 4. knowledgeTreeController.js: - moveNode方法的错误处理可以更完善,比如处理order计算时可能的浮点数精度问题 - swagger中缺少了一些错误状态码的描述 建议按以下步骤进行修复: 1. 修复 questionTypeController.js: - 移除select()中的无效字段 - 添加缺失的swagger schema定义 2. 统一 questionSourceController.js 的响应结构: - 统一使用sourceContent作为字段名 - 补充错误状态码的swagger描述 3. 完善 questionController.js: - 补充文件上传相关的swagger注释 - 增加数据验证的严格程度 4. 优化 knowledgeTreeController.js: - 改进moveNode方法中的order计算 - 补充swagger错误状态码描述