Kao框架学习

news2024/12/28 21:21:36

中间件:洋葱模型

这是官网上给出的示例,从logger依次往下执行,执行到最底层的response往回退,结构很像同心圆的洋葱从外层向内层再由内层向外层。

next表示暂停当前层的代码进入下一层, 当最后一层执行完毕开始回溯,执行上一层没做完的内容。

 路由中间件

// app.js
const xxxRouter = require("./routes/xxx");
app.use(xxxRouter.routes(), xxxRouter.allowedMethods());

// xxx.js
// 路径前缀是/xxx
const Router = new Router({ prefix: "/xxx" });
xxxRouter.post("/abaaba", async (ctx, next) => {
  let body = ctx.request.body;
  try {
    t = ...
    ctx.body = {
      code: 200,
      msg: "success",
      data: t,
    };
  } catch (e) {
    console.log(e);
    ctx.body = {
      code: 500,
      msg: "请检查参数",
      data: e,
    };
  }
});

xxxRouter.routes() 是一个用于处理路由的中间件,而 xxxRouter.allowedMethods() 是一个用于处理请求方法的中间件。在 Koa 中,路由中间件负责根据不同的 URL 路径将请求分发到不同的处理函数,而请求方法中间件负责根据请求的 HTTP 方法(如 GET、POST 等)确定是否允许该方法的请求。

所以,app.use(xxxRouter.routes(), xxxRouter.allowedMethods()) 这行代码的作用是将 xxxRouter 中定义的路由处理函数与请求方法处理函数绑定到 Koa 应用程序中,以便在收到请求时执行相应的操作。这样,当请求到达时,首先会通过路由中间件进行路径匹配,然后再通过请求方法中间件检查请求的方法是否被允许

请求部分的ctx是request和response的集合,ctx.request.body表示收到的请求体,ctx.body表示要发送的应答体

Body中间件

比起nodejs自带的bodyparser,koa-body还可以支持文件传输,用ctx.request.files.xxx(文件的变量名)来进行接收文件

注意koa-body进行的文件上传是先下载到本地的,如果需要的功能是导入之类的,这个文件用完就没用了,记得及时删除

if (fs.existsSync(filepath)) {
          fs.unlinkSync(filepath);      
          console.log('File deleted!');
        } 

可以同时支持多地址

 示例中告诉我们可以同时支持https和http

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/949824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习完毕JavaSE的感想

今天,把Java复习完毕了,之前学习的时候,学校里学的总是有限的 ,自己上手操作之后才发觉差的很多,部署服务器发现要学操作系统,学完了web基础 ,又发现还得学前后端分离vue react这些,…

基于ensp的中大型企业网络安全解决方案的设计与实施

一、需求背景 公司部门具体背景:公司共设有人事部、财务部、销售部、市场部四个部门以及一个员工宿舍楼,公司有对外互联网业务需要提供。公司内存在重要部门需要保护数据安全以及访问控制。 (1)根据客户需求、部门、拓扑&#xf…

代码搜索技巧

在IDE中搜索代码时,经常会被相近的无关代码干扰,如筛选所有使用协程的代码段, 可见有大量“噪音”。 可使用IDE提供的正则表达式功能 如 使用 \bgo ,即匹配go开头的,且之后为空格的所有选项 使用 \bgo func,即匹配到了所有使用协程…

C++学习vector

1,把list的相关函数都实现出来(未完) 2, 运行结果:

等保测评各个级别的详细内容

等保测评是指信息系统安全等级保护测评,是我国信息安全领域中的一项重要工作。根据国家标准《信息系统安全等级保护基本要求》(GB/T 22239-2008)和《信息系统安全等级保护测评技术要求》(GB/T 25070-2010)。 等保测评分为五个级别,分别是:一级…

达梦数据库管理用户和创建用户介绍

概述 本文主要对达梦数据库管理用户和创建用户进行介绍和总结。 1.管理用户介绍 1.1 达梦安全机制 任何数据库设计和使用都需要考虑安全机制,达梦数据库采用“三权分立”或“四权分立”的安全机制,将系统中所有的权限按照类型进行划分,为每…

JZ12 矩阵中的路径

剑指Offer编程链接:JZ12 题目描述: 思路:递归回溯的方法,总结一下什么情况需要使用递归: 递归在解决问题时,通常涉及以下情况: 问题可被分解为较小的相似子问题。子问题与原问题具有相同的结…

eclipse设置字体大小

打开IDE,选择window->perferences 选择颜色与字体,选择basic 选中text-font之后选择编辑 选择合适的大小之后选择应用并关闭即可 结果

权限提升-Windows本地提权-AT+SC+PS命令-进程迁移-令牌窃取-getsystem+UAC

权限提升基础信息 1、具体有哪些权限需要我们了解掌握的? 后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等 2、以上常见权限获取方法简要归类说明? 后台权限:SQL注入,数…

ELK日志收集系统

一、概述 1、ELK由三个组件构成 2、作用 日志收集 日志分析 日志可视化 3、为什么使用? 日志对于分析系统、应用的状态十分重要,但一般日志的量会比较大,并且比较分散。 如果管理的服务器或者程序比较少的情况我们还可以逐一…

数据结构学习 --4 串

数据结构学习 --1 绪论 数据结构学习 --2 线性表 数据结构学习 --3 栈,队列和数组 数据结构学习 --4 串 数据结构学习 --5 树和二叉树 数据结构学习 --6 图 数据结构学习 --7 查找 数据结构学习 --8 排序 本人学习记录使用 希望对大家帮助 不当之处希望大家帮忙纠正…

二极管:常用二极管封装

常用二极管封装 1、DO-41 2、DO-201AD 3、DO-35 4、LL-34 5、DO-214AC (SMA) 6、SMB

电脑数据丢失如何恢复?最常见的2种数据恢复方法!

大家使用电脑的时候是否有发生过不小心删除数据,或者数据不明丢失的情况呢?相信九成都是有的,那么当你的数据不小心删除或是丢失的话,有没有电脑数据恢复方法?其实很多人当自己电脑的数据丢失后,如果不是很…

一直傻傻分不清 count(*) count(id) count(1) 这次终于整明白了

COUNT(*)、COUNT(id) 和 COUNT(1) 是用于计算行数的 SQL 聚合函数,它们在某些方面有一些区别。 - COUNT(*):COUNT(*) 是一种特殊的语法,它返回结果集中的行数,不考虑任何列的值。它会将表中的每一行都计数,包括含有NU…

ToBeWritten之威胁情报

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…

【LeetCode】剑指 Offer <二刷>(1)

目录 前言: 题目:剑指 Offer 03. 数组中重复的数字 - 力扣(LeetCode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 前言: …

Charles调试请求

问题 需要调试特定的一个请求。 解决 选中调试 选中一个请求,右键菜单选中调试即可。 启用调试模式 勾选顶部控制按钮,启用调试模式,右下角会出现调试启用状态。 调试请求管理 通过顶部proxy➡️Breakpoint Settings…菜单&#xf…

企业诊断屋:在线小说企业如何用A/B测试赋能业务

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 近两年来,在线小说领域业务发展“降速”,相较于几年前的快速扩张,2022年后国内在线小说企业步入瓶颈期。但与此同,新…

云端地球 | 在线云端建模,让建筑设计更高效

三维模型制作是建筑设计的重要环节,但人工建模需要耗费大量的时间和精力。随着计算机视觉和倾斜摄影测量技术的发展,实景三维模型的应用日益广泛,利用三维重建技术实现可视化、数字化和信息化转变,已逐渐成为建筑行业的共识。 陕西…

【二等奖方案】大规模金融图数据中异常风险行为模式挖掘赛题「Aries」解题思路

第十届CCF大数据与计算智能大赛(2022 CCF BDCI)已圆满结束,大赛官方竞赛平台DataFountain(简称DF平台)正在陆续释出各赛题获奖队伍的方案思路,欢迎广大数据科学家交流讨论。 本方案为【大规模金融图数据中…