# api-event **Repository Path**: WeiJinRen/api-event ## Basic Information - **Project Name**: api-event - **Description**: 该项目是黑马大事件前端项目所对应的后端接口,仅供学习使用.感谢黑马在哔哩哔哩上所提供的学习资源 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-04 - **Last Updated**: 2023-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs, Express ## README # 黑马大事件项目后端总结 ## 一.业务分层 该业务主要分了三层 - 第一层:为app.js是该项目的入口文件,也是各个路由的挂载点 - 第二层:为router层,该层主要封装了各个功能模块接口的路由 - 第三层:为router_handler层,该层主要是各个接口的具体实 ## 二.业务逻辑 - 凡是涉及到修改数据库数据的业务都需要做表单验证,表单验证使用的是第三方包(@escook/express-joi ,@joi) - 除了/api下的接口之外,其他目录下的接口都需要携带token做身份验证.token相关的包(jsonwebtoken,express-jwt) - 数据库中的密码做了加密处理,相关包(bcryptjs) ## 三.相关包的版本 ```json "dependencies": { "@escook/express-joi": "^1.1.1", "@hapi/joi": "^17.1.0", "bcryptjs": "^2.4.3", "cors": "^2.8.5", "express": "^4.17.1", "express-jwt": "^5.3.3", "joi": "^17.8.3", "jsonwebtoken": "^8.5.1", "multer": "^1.4.2", "mysql": "^2.18.1" } ``` ## 四.相关接口 ### 4.1用户信息模块API(都为表单类参数) #### 4.1.1.用户注册API 路径:/api/reguser 方法:post | 参数名 | 数据类型 | 备注 | | -------- | -------- | ------ | | username | string | 必填项 | | password | string | 必填项 | #### 4.1.2用户登录API 路径:/api/login 方法:post | 参数名 | 数据类型 | 备注 | | -------- | -------- | ------ | | username | string | 必填项 | | password | string | 必填项 | #### 4.1.3.获取用户信息 路径:/my/userinfo 方法:get ,需要携带token #### 4.1.4.修改用户信息 路径:/my/userinfo 方法:post,需要携带token | 参数名 | 数据类型 | 备注 | | -------- | -------- | ---- | | nickname | string | 必填 | | email | string | 必填 | | id | number | 必填 | #### 4.1.5.修改密码 路径:/my/updatepwd,方法:post,需要携带token | 参数名 | 数据类型 | 备注 | | ------ | -------- | ---- | | oldPwd | string | 必填 | | newPwd | string | 必填 | #### 4.1.6.修改头像 路径:/my/update/avatar,方法:post,需要携带token | 参数名 | 数据类型 | 被指 | | ------ | -------- | ---------------- | | avator | base64 | 必填(用户头像) | ### 4.2文章分类模块API(都为表单类参数) #### 4.1.1.新增文章 ### 4.3.文章API #### 4.3.1.新增文章 路径:/my/article/add 方法:post 参数类型:form-data型 需要携带token | 参数名 | 数据类型 | 备注 | | --------- | -------- | -------------------------------- | | cate_id | integer | 必填 | | title | string | 必填 | | contnent | string | 必填 | | state | string | 必填(文章状态)仅有"发布"与"草稿" | | cover_img | base64 | 必填文章封面 | #### 4.3.2.查询所有文章 路径:/my/article/articles 方法:get 需要携带token 无参数 #### 4.3.3依据id查询文章 路径:/my/article/article/:id 方法:get 需要携带token 参数类型:params | 参数名 | 数据类型 | 备注 | | ------ | -------- | ---- | | id | integer | 必填 | #### 4.3.4依据id删除文章 路径:/my/article/article/:id 方法:delete 需要携带token 参数类型:params | 参数名 | 数据类型 | 备注 | | ------ | -------- | ---- | | id | integer | 必填 | #### 4.3.5.依据文章id修改文章草稿 路径:/my/article/article/:id 方法:put 需要携带token 参数类型:form-data与params params:参数 | 参数名 | 数据类型 | 备注 | | ------ | -------- | ---- | | id | integer | 必填 | form-data参数 | 参数名 | 数据类型 | 必填 | | --------- | -------- | -------------------------------- | | cate_id | integer | 必填(文章分类id) | | author_id | integet | 必填(作者id) | | content | string | 必填 | | title | string | 必填 | | cover_img | base64 | 必填 | | state | string | 必填(取值为:"已发布" 或者"草稿") |