位置: IT常识 - 正文

【Node.js+koa--后端管理系统】设计动态发布、修改、查询、删除接口(nodejs hook)

编辑:rootadmin
【Node.js+koa--后端管理系统】设计动态发布、修改、查询、删除接口

推荐整理分享【Node.js+koa--后端管理系统】设计动态发布、修改、查询、删除接口(nodejs hook),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js import,node.js写后端接口,node.js koa,node:js,node.js写后端接口,nodejs hook,node.js koa,node js 后端,内容如对您有帮助,希望把文章链接给更多的朋友!

🍳作者:贤蛋大眼萌,一名很普通但不想普通的程序媛\color{#FF0000}{贤蛋 大眼萌 ,一名很普通但不想普通的程序媛}贤蛋大眼萌,一名很普通但不想普通的程序媛🤳

🙊语录:多一些不为什么的坚持\color{#0000FF}{多一些不为什么的坚持}多一些不为什么的坚持

📝本文章收录于专栏:Node.js+koa–后端管理系统

💭眼过千遍不如手锤一遍:推荐一款模拟面试,斩获大厂offer,程序员的必备刷题平台−−牛客网\color{#ff7f50}{眼过千遍不如手锤一遍:推荐一款模拟面试,斩获大厂offer,程序员的必备刷题平台--牛客网}眼过千遍不如手锤一遍:推荐一款模拟面试,斩获大厂offer,程序员的必备刷题平台−−牛客网

👉🏻点击跳转刷题网免费注册学习

设计动态发布、修改、查询、删除接口⚙️ 动态内容接口设计思路🍬 发布动态内容接口① 创建新的动态内容表② 定义发布动态内容的接口③ controller层的函数处理④ service 层数据库处理🍿 修改动态内容接口① 定义路由接口② 验证用户是否授权和用户权限③ controller层的函数处理④ service 层数据库处理🍫 查询动态内容接口① 定义路由接口② 定义查询内容的接口(单个)③ 定义查询内容的接口(列表)🧂 删除动态内容接口① 定义路由接口② 验证用户登录和验证用户权限③ Controller和Service中的处理⚙️ 动态内容接口设计思路

🍬 发布动态内容接口① 创建新的动态内容表

建表语句:

CREATE TABLE IF NOT EXISTS `moment`(id INT PRIMARY KEY AUTO_INCREMENT,content VARCHAR(1000) NOT NULL,user_id INT NOT NULL,createAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updateAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,FOREIGN KEY(user_id) REFERENCES user(id));② 定义发布动态内容的接口

验证用户是否具备权限verifyAuth (//目录:@/middleware/auth_middleware.js)–> 创建动态

//目录:@/router/moment_router.js// 创建动态const Router = require('koa-router')const { create, } = require('../controller/moment_controller')const { verifyAuth,} =require('../middleware/auth_middleware')const momentRouter = new Router({prefix: '/moment'})// 创建动态momentRouter.post('/',verifyAuth,create)③ controller层的函数处理

④ service 层数据库处理

🍿 修改动态内容接口① 定义路由接口

② 验证用户是否授权和用户权限

🎧 PS: 很多的内容都需要验证权限: 修改/删除动态,修改/删除评论

【Node.js+koa--后端管理系统】设计动态发布、修改、查询、删除接口(nodejs hook)

接口:业务接口系统/后端管理系统

一对多:user—>role多对多:role—>menu(删除动态和修改动态)//目录:@/middleware/auth_middleware.js// 验证已登录用户是否具备修改内容权限中间件const verifyPermission = async(ctx,next)=>{ console.log("验证已登录用户是否具备修改内容权限middleware"); // 1.获取用户参数 const [resourceKey ]= Object.keys(ctx.params) const tableName = resourceKey.replace('Id','') const resourceId = ctx.params[resourceKey] const { id } = ctx.user // console.log(momentId,id); // 2.查询是否具备权限 try{ const isPermission = await authServiece.checkResource(tableName,resourceId,id) if(!isPermission) throw new Error() }catch(err){ const error = new Error(errorTypes.UNPERMISSION) return ctx.app.emit('error',error,ctx) } await next()}//目录:@/service/auth_service.js// 数据库查询用户是否存在const connection = require('../app/database')class AuthService { async checkResource (tableName,id,userid){ const statement = `SELECT * FROM ${tableName} WHERE id = ? AND user_id = ?;`; const [result] = await connection.execute(statement,[id,userid]) return result.length === 0? false:true; }}module.exports = new AuthService()③ controller层的函数处理

④ service 层数据库处理

🍫 查询动态内容接口① 定义路由接口//目录:@/router/moment_router.js// 创建动态const Router = require('koa-router')const { create, } = require('../controller/moment_controller')const { verifyAuth,} =require('../middleware/auth_middleware')const momentRouter = new Router({prefix: '/moment'})// 创建动态momentRouter.post('/',verifyAuth,create)// 获取动态信息momentRouter.get('/',list) //获取动态列表momentRouter.get('/:momentId',detail) //获取单个列表② 定义查询内容的接口(单个)

③ 定义查询内容的接口(列表)

最后更新:

🧂 删除动态内容接口① 定义路由接口

② 验证用户登录和验证用户权限

见上面(verifyAuth)和(verifyPermission)

③ Controller和Service中的处理

动态接口设计完成

PS:

求知无坦途,学问无捷径。👣一步一个脚印,你走过的路,每一步都算数。\color{#ff7f50}{一步一个脚印,你走过的路,每一步都算数。}一步一个脚印,你走过的路,每一步都算数。 每一次进步都是对自己努力的肯定。如果读了文章有收获,不如一起来学习,一起进步吧。传送门🚪刷题神器

本文链接地址:https://www.jiuchutong.com/zhishi/300517.html 转载请保留说明!

上一篇:【数据挖掘实战】——家用电器用户行为分析及事件识别(BP神经网络)(数据挖掘技术介绍)

下一篇:如何构建您自己的 ChatGPT:无需代码的 AI(如何构建自己的精神空间)

  • 小米请勿遮挡听筒区域怎么关闭(小米请勿遮挡听筒区域可以取消吗)

    小米请勿遮挡听筒区域怎么关闭(小米请勿遮挡听筒区域可以取消吗)

  • 电脑指令怎么打开(电脑怎么调出指令)

    电脑指令怎么打开(电脑怎么调出指令)

  • 为什么脚注到了11以后没有圈了(为什么脚注到了第20个以后就不能用圆的)

    为什么脚注到了11以后没有圈了(为什么脚注到了第20个以后就不能用圆的)

  • pcle固态是什么意思(pcle固态与ssd固态的区别)

    pcle固态是什么意思(pcle固态与ssd固态的区别)

  • 苹果11a2223型号是什么意思(苹果11a2223型号和苹果11有什么区别)

    苹果11a2223型号是什么意思(苹果11a2223型号和苹果11有什么区别)

  • tcl原始密码是多少(tcl的设置密码多少?)

    tcl原始密码是多少(tcl的设置密码多少?)

  • 华为mate30pro mate30区别(华为mate30pro mate30E pro 外观区别)

    华为mate30pro mate30区别(华为mate30pro mate30E pro 外观区别)

  • 微信聊天背景能保存吗(微信聊天背景能单独设置吗)

    微信聊天背景能保存吗(微信聊天背景能单独设置吗)

  • qq空间老是被异地登录怎么办(qq空间老是被异地登陆)

    qq空间老是被异地登录怎么办(qq空间老是被异地登陆)

  • linux是多用户多任务操作系统吗(linux是多用户吗)

    linux是多用户多任务操作系统吗(linux是多用户吗)

  • vivo手机怎么调整时间(vivo手机怎么调时间)

    vivo手机怎么调整时间(vivo手机怎么调时间)

  • windows7怎么一键还原(windows7怎么一键关机)

    windows7怎么一键还原(windows7怎么一键关机)

  • i3 3220配什么主板(i33220配什么主显卡)

    i3 3220配什么主板(i33220配什么主显卡)

  • 华为相机怎么换滤镜(华为相机怎么换底)

    华为相机怎么换滤镜(华为相机怎么换底)

  • 华为mate20x5G能否双击亮屏

    华为mate20x5G能否双击亮屏

  • 手机qq怎么查看q币(手机QQ怎么查看q龄)

    手机qq怎么查看q币(手机QQ怎么查看q龄)

  • 手机怎么新建文件夹(手机怎么新建文件夹放各种文件)

    手机怎么新建文件夹(手机怎么新建文件夹放各种文件)

  • 探探左滑右滑的区别(探探左滑右滑有什么区别)

    探探左滑右滑的区别(探探左滑右滑有什么区别)

  • iPhone Xs Max前置摄像头传感器类型(iphonexsmax前置像素)

    iPhone Xs Max前置摄像头传感器类型(iphonexsmax前置像素)

  • 如何在excel中添加开发工具(如何在excel中添加多条斜线并添加文字)

    如何在excel中添加开发工具(如何在excel中添加多条斜线并添加文字)

  • 优酷青少年模式怎么取消(优酷青少年模式怎么设置)

    优酷青少年模式怎么取消(优酷青少年模式怎么设置)

  • 华为p30与p20对比(华为p30与p20对比有什么不同)

    华为p30与p20对比(华为p30与p20对比有什么不同)

  • 在幻灯片中导入word提纲(在幻灯片中导入视频文件后视频文件时被几个圆点框选)

    在幻灯片中导入word提纲(在幻灯片中导入视频文件后视频文件时被几个圆点框选)

  • Linux字体模糊该怎么解决?  Linux让字体清晰的教程(linux字体不清晰)

    Linux字体模糊该怎么解决? Linux让字体清晰的教程(linux字体不清晰)

  • 损失函数 | BCE Loss(Binary CrossEntropy Loss)(损失函数是什么)

    损失函数 | BCE Loss(Binary CrossEntropy Loss)(损失函数是什么)

  • 税后营业利润和利润总额的区别
  • 应纳税所得额的会计分录
  • 生产成本怎么做
  • 利润分配未分配利润借贷方表示什么
  • 年末计提坏账准备金额怎么算
  • 发票未到暂估账务处理
  • 收入纳税明细里的收入是税前还是税后
  • 免交附加税政策
  • 自产产品用于职工福利确认收入吗
  • 赔付伤残费用还有误工费用么
  • 个人独资公司可以控股其他公司吗
  • 发放取暖补贴文件
  • 小规模建筑公司预缴增值税
  • 公司换法人公司账户怎么办
  • 新公司前几个月发工资
  • 增值税发票三个点
  • 分公司是否可以贷款
  • 会计增长知识方面
  • 小规模纳税人公司注销流程及费用
  • 增值税预征率记忆口诀
  • 工程发票的备注栏
  • 废旧物资回收需要什么手续
  • 办税人员需要会计证吗
  • 个人转账收入要缴税吗
  • 购买的装修样品怎么入账
  • 超出标准的公积金怎么交
  • 企业结算备付金怎么做账
  • 增值税普通发票和电子普通发票的区别
  • 股金属于金融产品吗
  • mac死机什么原因
  • 怎么简单快速的辨别是铝是锡
  • 商业一般纳税人税率多少
  • Win7系统如何创建宽带连接
  • php常用的设计模式在开发中的实例
  • 第一部塞班手机
  • 分公司能不能独立法人
  • 存货销售收入
  • Pont Rouge (Red Bridge) over the Palmer River in Sainte-Agathe-de-Lotbinière, Quebec, Canada (© Jean Surprenant/Getty Images)
  • 分配利润的会计处理
  • 运输公司汽车折旧年限
  • 一般贸易和进料加工退税的区别
  • 在税务局怎么查补缴的社保
  • 固定资产折旧怎么做会计科目
  • windows7/windows10/windows11最强Audacity音频编辑播放器软件,免费下载
  • mongodb基础知识
  • 个体户电子申报税流程
  • access 替换
  • 房地产增值税计入什么科目
  • 营业外收入交企业所得税吗
  • 分公司可以在银行贴现吗
  • 进项税准予抵扣条件有哪些
  • 小规模免征增值税的会计处理办法
  • 公司维修费计入什么科目
  • 什么叫做增值税的新增价值呢
  • 公司给员工发福利图片
  • 如何在个人所得税app上修改扣缴义务人
  • 业务招待费占管理费用的多少算合适
  • 委托加工物资贷方
  • 展厅租赁税率
  • 企业购买银行理财产品的会计处理
  • 汇兑损益形成的基础是
  • 管家婆里面的记账凭证怎么做?
  • 银行回单模板
  • 生产型企业电费会计分录
  • 请问,制造企业有哪些?
  • jdbc数据库连接步骤
  • windows8.
  • win1020h2正式版
  • windows8_os
  • win10电源选项
  • win8系统保护已关闭 如何系统还原
  • jquery实现回到顶部
  • 使用jQuery获取data-的自定义属性
  • 浏览图片的软件叫什么
  • excel替换一行内容
  • javascript html5实现表单验证
  • python脚本运行命令
  • 简单的智能家居
  • python+Django+apache的配置方法详解
  • 百度地图一口价为什么还多收费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设