Skip to content

OokukiooO/api_YKWX

Repository files navigation

说明文档

0. 运行

1.后端运行

  • 使用pm2运行pm2 start npm --name api_YKWX -- start prd
  • 使用npm原生运行npm start
  • 使用pm2运行app.js(不推荐)npm run prd;

2.前端运行


1. 项目概述与需求分析

在开始编码之前,先明确需求:

  • 核心功能:用户登录、文件上传、模型计算、状态查询。
  • 技术栈:后端使用Node.js和Express框架,MongoDB作为数据库,前端可选Vue或React。
  • 安全性:用户认证使用OAuth2.0,文件上传支持阿里云OSS。

2. 开发准备

2.1 配置开发环境

  • 安装Node.js和MongoDB,并确认环境配置正确。
  • 配置开发所需的依赖库,如Express、mongoose、jsonwebtoken等。

2.2 初始化项目

  • 使用npm init初始化Node.js项目。
  • 安装所需依赖库。
  • 创建必要的文件和文件夹结构,例如controllers(控制器)、models(模型)、routes(路由)、config(配置)等目录。

3. 数据库设计

3.1 创建MongoDB数据库

  • 在MongoDB中创建一个名为项目名称的数据库。

3.2 定义数据库模型

  • 根据接口文档中的ER图,定义userstasksuploadProgressmodelFiles等集合及字段。
  • 在项目中创建models目录,并定义这些集合的Mongoose Schema,以便与MongoDB集合对接。

4. 后端开发

4.1 基础设置与中间件配置

  • 使用Express框架创建服务。
  • app.js文件中加载并配置中间件,如body-parser解析JSON请求,dotenv管理环境变量,cors设置跨域等。

4.2 实现用户认证功能

  1. 用户注册(可选):

    • 实现一个POST /api/register接口,处理用户注册请求,保存用户信息到users集合。
  2. 用户登录

    • 使用OAuth2.0的password模式,验证用户并返回JWT令牌。
    • 确保密码存储使用加密(如bcrypt),实现密码验证及JWT生成逻辑。

4.3 文件上传与任务管理

  1. 文件上传接口

    • 创建一个POST /api/upload接口,接收用户文件、文件名和其他必要参数。
    • 配置文件上传的存储位置,使用阿里云OSS或其他云存储服务。
    • 返回上传结果及文件的URL。
  2. 任务管理接口

    • 创建任务记录到tasks集合,记录文件状态和存储位置(URL)。
    • 实现接口获取当前任务状态和进度。

4.4 状态更新与查询功能

  1. 上传进度更新接口

    • 在文件上传时,实时更新uploadProgress集合中的进度百分比和状态。
    • 实现接口查询特定任务的上传进度。
  2. 任务状态更新

    • 根据业务逻辑更新tasks集合中的任务状态。
    • 提供接口获取指定任务的状态,用于前端的轮询更新。

4.5 模型文件处理与下载

  • 处理任务完成后的模型文件生成,将文件保存到modelFiles集合。
  • 实现接口提供模型文件的下载URL或将文件直接返回前端。

5. 前端开发

5.1 用户界面开发

  • 实现登录界面、文件上传界面及任务管理页面。
  • 登录界面集成OAuth2.0认证,并存储JWT以保持用户登录状态。

5.2 任务管理和进度显示

  • 文件上传页面实现文件选择及进度展示,显示任务的实时状态。
  • 实现定时轮询请求任务状态更新,并动态刷新前端进度显示。

5.3 模型文件下载功能

  • 在任务完成后,提供模型文件下载链接或下载按钮。
  • 前端集成模型文件下载API,提供模型文件的下载服务。

6. 测试与调试

6.1 后端API测试

  • 使用Postman等工具测试各个API接口的正确性,确保请求与响应符合设计要求。
  • 尤其关注文件上传、任务状态查询和下载功能的接口。

6.2 前端功能测试

  • 测试登录、文件上传、任务管理及模型文件下载的实际功能。
  • 确保前端界面能正确显示任务进度,且在状态更新后自动刷新。

6.3 集成测试

  • 将前后端整合,模拟实际用户操作,验证整个流程的完整性与稳定性。

7. 部署与上线

7.1 环境准备

  • 配置服务器环境,确保Node.js、MongoDB和前端框架运行环境已经搭建完成。

7.2 部署后端服务

  • 将后端代码上传到服务器并运行。
  • 配置反向代理(如Nginx)处理前端请求转发,确保API服务可用。

7.3 部署前端项目

  • 构建前端项目,将构建文件部署到Web服务器上。
  • 进行基础测试,确认项目运行正常。

8. 项目维护与优化

  • 性能优化:对于频繁请求的接口,考虑使用缓存机制减少数据库负载。
  • 日志与监控:添加日志记录,并设置监控警报系统,确保问题能够及时发现和处理。
  • 用户反馈:根据用户反馈不断改进项目功能,优化用户体验。

9. 文档与总结

  • 撰写完整的项目文档,包括功能说明、使用指南和开发注意事项。
  • 项目总结,记录项目中的难点、解决方案及项目优化建议,以便后续版本迭代。

通过以上步骤,您可以逐步完成项目的开发。根据需求调整细节,确保项目在每个阶段都符合设计要求。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published