- 主要讲述项目需求及实现思路方法以及其中遇到的困难点及解决方案。
本地开发所用文档集
- HTTP选题内容 - 飞书云文档 (feishu.cn)
- 数据库设计及Restful api设计 - 飞书云文档 (feishu.cn)
参考集 - 如何使用cmd切换管理员身份_笔记大全_设计学院 (python100.com)
- Windows命令行下如何查看、添加、删除用户 【百科全说】 (bkqs.com.cn)
- vscode中将tpl文件高亮显示_阿布的小布的博客-CSDN博客
- mdn(js用法)
- egg教程 - Egg (eggjs.org)
- 5000字Egg.js快速入门到基础到进阶!!! - 掘金 (juejin.cn)
- 学习egg.js,看这一篇就够了! - 掘金 (juejin.cn)
收获的知识
- node.js:express.js、koa.js、egg.js都是node.js支撑的后端框架,应用上文件操作可能多一些。
- egg.js:采用异步编程模型,基于koa框架,已掌握其上下文机制、res、req对象、中间件、异常处理、路由映射、插件、静态资源、模板映射、MVC布局、sequelize-mysql、sequelize-cli等等。
- get单数据请求(params、query),为了接口请求的安全性,和多数据请求参数,多类型请求方式,附件,图片上传等多采用post请求。
- Restful与Restful ApiRESTful API 一种流行的 API 设计风格
- RESTful是一种设计风格和架构原则,用于构建可伸缩的网络应用程序。它是一种基于HTTP协议的约束性架构,旨在提供一种简单、轻量级、可扩展和可维护的方式来设计和构建Web服务。
- RESTful API是基于RESTful原则设计的API。它使用HTTP协议的GET、POST、PUT和DELETE等请求方法,通过URL和请求头传递参数,使用状态码和响应体返回数据,实现了客户端和服务器之间的通信和数据交互。RESTful API通常使用JSON或XML格式来传输数据。形式:接口名、请求方式、状态码、url路径、请求参数、响应参数
- Restful Api设计原则:
- 请求方式:
- GET请求用于获取资源的信息,可以用于查询操作,返回资源的详细信息。
- POST请求用于创建新的资源,通常用于插入操作。
- PATCH:向服务器局部更新数据,用于部分更新已存在的资源。
- OPTIONS:获取服务器支持的HTTP方法列表,用于查询服务器的功能。
- PUT请求用于更新资源的信息,通常用于修改操作。
- DELETE请求用于删除资源,通常用于删除操作。
- 常见状态码:
- 200 OK:请求成功,服务器成功处理了请求并返回了所需的数据。
- 201 Created:请求成功并在服务器上创建了新资源。
- 204 No Content:请求成功,但服务器没有返回任何内容。
- 400 Bad Request:请求无效,服务器无法理解或处理请求。
- 401 Unauthorized:请求要求身份验证,未提供有效的身份验证凭据。
- 403 Forbidden:服务器拒绝请求,没有权限访问请求的资源。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法不被允许。
- 500 Internal Server Error:服务器遇到了意外情况,导致无法完成请求。
- mysql软删除及sequelize软删除配置
- linux+shell+docker+云服务器+nginx
项目后端实现思路
description: 数据库设计及Restful api设计 - 飞书云文档 (feishu.cn)\
- 用户注册:若用户已存在(username、email、role),则响应信息。
- 用户登录:核验邮箱号及密码及身份角色,然后放行。
- 用户注销:删除用户表记录。⭐待优化
- 创建项目:管理项目成员表(项目创建者)
- 更新项目
- 查找项目:查找当前用户所拥有的项目,表间关系(通过userId找到项目成员表project_id字段,从而找到该用户所有的project)
- 删除项目:项目删除+项目成员移除+项目接口删除+项目接口版本管理删除
- 添加项目成员:若项目成员已存在数据库,则将其加入项目成员表,并且提示成员添加者:“该项目成员本身存在数据库,现已将其加入项目,其信息除邮箱号之外,其本身信息保留不变”;若项目成员不在数据库,则添加者将成员基本信息输入传递服务端将其加入用户表(默认密码为123456)和项目成员表,将其添加至用户表。
- 更新项目成员信息:不考虑,由成员自行更新
- 移除项目成员:操作项目成员表
- 查找接口:项目下所有接口
- 增添接口:增加接口记录+增加接口日志
- 更新接口:更新接口记录+增加接口更新日志
- 删除接口:删除接口记录+增加接口删除日志
- 接口日志:以每个项目为维度,查询渲染
过程中遇到的问题及解决方式
- 数据库字符集混乱:设置字符集,重新迁移数据表。
- 依赖包版本冲突:
ERESOLVE unable to resolve dependency tree错误通常发生在使用npm安装依赖项时,由于依赖关系冲突而无法解析依赖树。根据错误消息,有两个依赖项引起了冲突:react和antd。- 解决此问题的一种方法是手动解决依赖关系冲突。根据错误消息,你的项目需要react版本大于等于16.2.0,并且antd版本大于等于3.3.0。然而,你的areact依赖项指定了react版本为16.14.0,这可能与antd的要求不一致。
- 你可以尝试升级areact的版本,以便它与antd的要求相匹配。或者,你可以尝试降低antd的版本,以便它与areact的要求相匹配。你可以在项目的package.json文件中手动更改这些依赖项的版本。
- 另外,你还可以尝试使用npm的--force选项或--legacy-peer-deps选项来强制解析依赖关系。这可能会导致不正确或损坏的依赖关系解析,但有时可以解决依赖关系冲突。
- 最后,你可以查看C:\Users\HP\AppData\Local\npm cache\eresolve-report.txt文件,以获取有关完整报告的更多详细信息。这可能会提供有关依赖关系冲突的更多上下文和解决方案。
- 总之,解决依赖关系冲突可能需要一些试错和调整。你可以尝试手动更改依赖项的版本,使用npm的选项来强制解析依赖关系,或者查看详细报告以获取更多信息。
mysql> GRANT ALL PRIVILEGES ON mysql.* TO 'root'@'%' IDENTIFIED BY 'qaz110258357'; ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50568, now running 50743. Please use mysql_upgrade to fix this error.: MySQL 数据库版本升级后,但是数据库表结构没有更新。需要运行mysql_upgrade命令来修复这个错误。- 等等。