【Node.js+koa--后端管理系统】设计标签创建、查询、接口 | 标签绑定到动态

简介: 【Node.js+koa--后端管理系统】设计标签创建、查询、接口 | 标签绑定到动态

标签接口设计思路


思路:一个动态可以有多个标签,一个标签也可以对应多个动态

微信图片_20221012215600.png

创建标签接口


① 创建标签表

CREATE TABLE IF NOT EXISTS `label`(
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(10) NOT NULL UNIQUE,
  createAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updateAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

② 定义路由接口–>验证用户登录

const Router = require ('koa-router')
const {
  create,
} = require('../controller/label_contrller')
const {
  verifyAuth
} = require('../middleware/auth_middleware')
const labelRouter = new Router ({prefix: '/label'})
// 创建标签
labelRouter.post('/',verifyAuth,create)
module.exports = labelRouter

③ Controller和Service中处理内容

微信图片_20221012215814.png

微信图片_20221012215834.png


标签与动态关系


① 创建标签和动态关系表

CREATE TABLE IF NOT EXISTS `moment_label`(
  moment_id INT NOT NULL,
  label_id INT NOT NULL,
  createAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updateAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY(moment_id, label_id),
  FOREIGN KEY (moment_id) REFERENCES moment(id) ON DELETE CASCADE ON UPDATE CASCADE,
  FOREIGN KEY (label_id) REFERENCES label(id) ON DELETE CASCADE ON UPDATE CASCADE
);

② 给动态添加标签接口


1. 给动态添加新标签的接口

微信图片_20221012220001.png

ps: 补充完整的动态路由代码

const Router = require('koa-router')
const {
  create, 
  detail,
  list,
  update,
  remove,
  addLabels,
  fileInfo
} = require('../controller/moment_controller')
const { 
  verifyAuth,
  verifyPermission
} = require('../middleware/auth_middleware')
const {
  verifyLabelExists  
} = require('../middleware/label_middleware')
const momentRouter = new Router({prefix: '/moment'})
// 创建动态
momentRouter.post('/',verifyAuth,create)
// 获取动态信息
momentRouter.get('/',list)
momentRouter.get('/:momentId',detail)
// 修改动态接口
// 条件:1.用户必须登录 2. 用户具备权限
momentRouter.patch('/:momentId',verifyAuth,verifyPermission,update)
momentRouter.delete('/:momentId',verifyAuth,verifyPermission,remove)
// 给动态添加标签
momentRouter.post('/:momentId/labels', verifyAuth, verifyPermission, verifyLabelExists, addLabels);
// 动态配图
momentRouter.get('/images/:filename',fileInfo)
module.exports = momentRouter


微信图片_20221012220056.png微信图片_20221012220109.png

2. 给动态内容绑定标签

微信图片_20221012220154.png微信图片_20221012220200.png

查询标签接口


① 路由接口

微信图片_20221012220234.png

② 查询动态列表,展示标签数量

微信图片_20221012220257.png

③查询动态详情,展示标签列表

微信图片_20221012220332.png




相关文章
|
11天前
|
前端开发 JavaScript
【node写接口】 通过node 快速搭建一个服务器、get请求、post请求 小白入门
【node写接口】 通过node 快速搭建一个服务器、get请求、post请求 小白入门
19 4
|
19天前
|
运维 前端开发 API
运维,如何快速查找后端的接口
运维,如何快速查找后端的接口
|
19天前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
21天前
|
JavaScript
vue + d3.js(v6) 绘制【树状图/思维导图】可折叠/展开,可点击跳转,可带标签
vue + d3.js(v6) 绘制【树状图/思维导图】可折叠/展开,可点击跳转,可带标签
40 1
|
27天前
|
JSON 前端开发 Java
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
一文读Web开发 之接口后端接口、类与前端请求、拦截器编写
35 6
|
25天前
|
前端开发 数据库 索引
前后端分离------后端创建笔记(05)用户列表查询接口(下)
前后端分离------后端创建笔记(05)用户列表查询接口(下)
|
1月前
|
中间件 Go
go语言后端开发学习(三)——基于validator包实现接口校验
go语言后端开发学习(三)——基于validator包实现接口校验
|
2月前
|
前端开发 JavaScript 数据库
nodeJs中实现连表查询
在Node.js中,这段代码演示了如何使用Promise处理异步数据库查询以实现连表查询。首先,通过Promise从`orders`表中获取指定用户ID的订单,然后对每个订单,再次使用Promise查询对应的`food`信息。查询结果合并后,将foodList添加到对应订单对象。最后,使用Promise.all处理并发查询并发送响应。文章还介绍了Promise的基础知识,包括创建Promise、处理状态变化以及Promise.all和Promise.race方法。
29 1
nodeJs中实现连表查询
|
17天前
|
前端开发 JavaScript Linux
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
后端测试,编写好了一个接口,怎样用postman测试
后端测试,编写好了一个接口,怎样用postman测试