位置: 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(如何构建自己的精神空间)

  • 个人所得税跨区域可以申报吗
  • 以房抵债的房子交房产税吗
  • 服务行业人工费计入什么科目
  • 教育培训学校怎么翻译
  • 工程中常见的土方工程有哪些
  • 其他应收款的对方科目有哪些
  • 房租租金收入都缴纳什么税金
  • 空白增值税报表在哪下载
  • 支付城镇土地使用税会计科目
  • 广告公司可以开维修费吗
  • 资金账号和交易账号一样吗
  • 什么情况下是应收账款
  • 购买税控设备怎么抵扣
  • 购买方退货的会计处理
  • 有未弥补亏损本季度有盈利要计提递延所得税资产吗?
  • 为什么有的公司没有一金
  • 延迟抵扣的税务风险
  • 运费抵扣的税收筹划是怎样的?
  • 增值税发票校验码是什么意思
  • 收到农产品发票3%抵9%怎么做账
  • 公司筹建期间的劳务费怎么入账
  • 出租柜台收取的服务费
  • 受赠房屋涉及哪些税?
  • 短期借款有没有上年结转
  • 个税申报已经扣了怎么办
  • 印花税的计税依据是销项和进项的金额
  • 鸿蒙系统怎么开启开发者权限
  • 评估增值的账务处理
  • 怎么升级win11正版
  • windows无法连接到system Events
  • 财政应返还额度是什么意思?
  • jetcar.exe - jetcar是什么进程 有什么作用
  • 机器学习,看这一篇就够了:回归算法,特征工程,分类算法,聚类算法,神经网络,深度学习入门
  • 直接计入所有者权益的交易或事项
  • 什么是冲帐?怎么个冲法?
  • php单例模式demo
  • 增值税税收滞纳金哪里缴纳
  • 房租的计算方式
  • 借款存入银行会计分录怎么写
  • 律师事务所主要业务范围介绍
  • 还银行贷款怎么做凭证
  • 浏览器任意链接在哪里
  • 帝国cms扣除会员怎么办
  • 发票报送日志不完整
  • 增值税发票丢失可以重开吗
  • 个人所得税手续费返还增值税申报表怎么填
  • sql2008用户sa登录失败
  • 企业购进材料取得增值税专用发票
  • 保险公司委托代征是什么意思
  • 收到生育津贴会计分离
  • 运输服务属于生活服务吗
  • 待抵扣进项税额和进项税额的区别
  • 单位收到已交个人社保
  • 错账更正方法有几种分别适用于什么情况
  • 快递公司结算员能学到财务知识吗
  • 客户付了订金后能退吗
  • 购买的材料入库属于什么会计科目
  • 商业地产会计账务怎么做
  • 委托方和受委托方的法律关系
  • 同城票据交换差额户的帐号怎么查对方的帐号
  • 车间劳务费计入什么费用
  • 集资建房有维修基金吗
  • mysql按时间查询
  • Xp系统设置ip地址
  • windows2003域控制器
  • 怎样一键重装
  • adb mac安装
  • office解压后如何安装
  • win10 右下角
  • 关闭默认共享和共享文件夹
  • 查看网关的mac地址是多少
  • 各种常用的js函数有哪些
  • js如何显示日期和时间
  • javascript的简介
  • mongodb python
  • javascript的核心组成部分
  • python代码规范化
  • 房地产开发商要交哪些税和费用
  • 荆州市税务局现任名单
  • 税务网上申报怎样操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设