【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




相关文章
|
18天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的自驾游攻略查询系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的自驾游攻略查询系统附带文章和源代码部署视频讲解等
20 6
|
2天前
|
前端开发 JavaScript API
探索现代Web开发中的动态数据交互——前端与后端整合实战
本文探讨了现代Web开发中前端与后端整合的关键技术点,通过实际案例演示了如何利用JavaScript和Node.js实现动态数据交互,全面解析从数据请求到响应的全过程。
|
2天前
|
SQL XML 数据库
后端数据库开发高级之通过在xml文件中映射实现动态SQL
后端数据库开发高级之通过在xml文件中映射实现动态SQL
9 3
|
21天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的网络直播带货查询系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的网络直播带货查询系统附带文章和源代码部署视频讲解等
19 4
|
19天前
|
SQL JavaScript 前端开发
简单用Nodejs + express 编写接口
【6月更文挑战第3天】该文介绍了如何在Node.js和Express中创建GET和POST接口。首先,简要提到了准备工作,建议查阅上一篇文章。接着展示了GET接口的示例,说明可以直接在浏览器中请求。然后,详细解释了POST接口的步骤,包括引入Express模块、设置路由处理程序、解析请求体及处理请求。最后,强调了编写接口时应注意错误处理、安全性、中间件使用、路由组织、日志记录、性能优化和测试等关键点。作者以肥晨的身份结尾,鼓励关注其分享的前端学习资料和技术动态。
20 1
|
20天前
|
Java 测试技术 数据安全/隐私保护
基于ssm+vue.js+uniapp小程序的城市公交在线查询系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的城市公交在线查询系统附带文章和源代码部署视频讲解等
8 0
基于ssm+vue.js+uniapp小程序的城市公交在线查询系统附带文章和源代码部署视频讲解等
|
21天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的四六级报名与成绩查询系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的四六级报名与成绩查询系统附带文章和源代码部署视频讲解等
16 1
|
22天前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的技术疫情防控自动售货机系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的技术疫情防控自动售货机系统附带文章和源代码部署视频讲解等
18 0
基于ssm+vue.js+uniapp小程序的技术疫情防控自动售货机系统附带文章和源代码部署视频讲解等
|
28天前
|
JavaScript Java 测试技术
基于微信小程序的企业职工薪资查询系统+ssm+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的企业职工薪资查询系统+ssm+vue.js附带文章和源代码设计说明文档ppt
36 5
|
28天前
|
JavaScript Java 测试技术
速达物流信息查询微信小程序ssm+vue.js附带文章和源代码设计说明文档ppt
速达物流信息查询微信小程序ssm+vue.js附带文章和源代码设计说明文档ppt
18 1