【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




相关文章
|
15天前
|
JavaScript 中间件 API
Node.js进阶:Koa框架下的RESTful API设计与实现
【10月更文挑战第28天】本文介绍了如何在Koa框架下设计与实现RESTful API。首先概述了Koa框架的特点,接着讲解了RESTful API的设计原则,包括无状态和统一接口。最后,通过一个简单的博客系统示例,详细展示了如何使用Koa和koa-router实现常见的CRUD操作,包括获取、创建、更新和删除文章。
35 4
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的自驾游攻略查询系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的自驾游攻略查询系统附带文章和源代码部署视频讲解等
40 6
|
4月前
|
存储 开发框架 前端开发
循序渐进VUE+Element 前端应用开发(19)--- 后端查询接口和Vue前端的整合
循序渐进VUE+Element 前端应用开发(19)--- 后端查询接口和Vue前端的整合
|
3月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
5月前
|
前端开发 数据库 索引
前后端分离------后端创建笔记(05)用户列表查询接口(下)
前后端分离------后端创建笔记(05)用户列表查询接口(下)
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的公共交通查询系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的公共交通查询系统附带文章源码部署视频讲解等
34 0
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的城市公交查询系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的城市公交查询系统附带文章源码部署视频讲解等
25 0
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的武汉市公交路线查询系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的武汉市公交路线查询系统附带文章源码部署视频讲解等
33 0
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的城市公交在线查询系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的城市公交在线查询系统附带文章源码部署视频讲解等
31 0
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的高校竞赛和考级查询系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的高校竞赛和考级查询系统附带文章源码部署视频讲解等
29 0