【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




相关文章
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
787 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
844 17
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
590 18
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
380 10
|
人工智能 搜索推荐 API
node-DeepResearch:开源复现版OpenAI Deep Research,支持多步推理和复杂查询的AI智能体
node-DeepResearch 是一个开源 AI 智能体项目,支持多步推理和复杂查询,帮助用户逐步解决问题。
1556 27
node-DeepResearch:开源复现版OpenAI Deep Research,支持多步推理和复杂查询的AI智能体
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
689 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
SQL JSON 关系型数据库
17.6K star!后端接口零代码的神器来了,腾讯开源的ORM库太强了!
"🏆 实时零代码、全功能、强安全 ORM 库 🚀 后端接口和文档零代码,前端定制返回 JSON 的数据和结构"
348 1
|
关系型数据库 MySQL 测试技术
记录一次后端接口抖动的排查过程
某天下午,测试新功能时发现页面接口偶尔变慢,平均十次调用中有三到四次出现3秒以上的延迟。排查了接口、数据库和服务器资源后未发现问题,最终锁定为K8s节点的负载均衡策略导致。测试环境仅有一个公网IP,SLB轮询四个Pod(其中三个为空),造成周期性延迟。移除空Pod后问题解决。
475 6
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带领读者从零基础开始,一步步深入到Node.js后端开发的精髓。我们将通过通俗易懂的语言和实际代码示例,探索Node.js的强大功能及其在现代Web开发中的应用。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的见解和技巧,让你的后端开发技能更上一层楼。