微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Koa框架

Koa

koa注册的中间件提供了两个参数:
ctx:上下文(Context)对象;
 koa并没有像express一样,将req和res分开,而是将它们作为
ctx的属性
 ctx代表依次请求的上下文对象;
 ctx.request:获取请求对象;
 ctx.response:获取响应对象;

◼ next:本质上是一个dispatch,类似于之前的next;  后续我们学习Koa的源码,来看一下它是一个怎么样的函数

在这里插入图片描述

Koa中间件

koa通过创建的app对象,注册中间件只能通过use方法
 Koa并没有提供methods的方式来注册中间件;
 也没有提供path中间件来匹配路径;
◼ 但是真实开发中我们如何将路径和method分离呢?
 方式一:根据request自己来判断;
 方式二:使用第三方路由中间件;

在这里插入图片描述

路由的使用

◼ koa官方并没有给我们提供路由的库,我们可以选择第三方
库:koa-router
npm install koa-router

◼ 我们可以先封装一个 user.router.js 的文件
◼ 在app中将router.routes()注册为中间件:
◼ 注意:allowedMethods用于判断某一个method是否支持
 如果我们请求 get,那么是正常的请求,因为我们有实
现get;  如果我们请求 put、delete、patch,那么就自动报错:
Method Not Allowed,状态码:405;  如果我们请求 link、copy、lock,那么久自动报错:
Not Implemented,状态码:501;

在这里插入图片描述

参数解析:params - query

获取params:

在这里插入图片描述

获取query:

在这里插入图片描述

参数解析:json

body是json格式:

在这里插入图片描述

获取json数据:
 安装依赖: npm install koa-bodyparser;
 使用 koa-bodyparser的中间件;

在这里插入图片描述

参数解析:x-www-form-urlencoded

body是x-www-form-urlencoded格式:

在这里插入图片描述

获取json数据:(和json是一致的)

安装依赖: npm install koa-bodyparser;
使用 koa-bodyparser的中间件

在这里插入图片描述

参数解析:form-data

body是form-data格式

在这里插入图片描述

解析body中的数据,我们需要使用multer

安装依赖:npm install koa-multer;
使用 multer中间件;

在这里插入图片描述

M ulter上传文件

在这里插入图片描述

数据的响应

输出结果:body将响应主体设置为以下之一:

 string :字符串数据
 Buffer :Buffer数据
 Stream :流数据
 Object|| Array:对象或者数组
 null :不输出任何内容
 如果response.status尚未设置,Koa会自动将状态设置为200或204。

请求状态:status

在这里插入图片描述

静态服务器

koa并没有内置部署相关的功能,所以我们需要使用第三方库:

npm install koa-static

◼ 部署的过程类似于express:

在这里插入图片描述

错误处理

在这里插入图片描述

和express对比

◼ 在学习了两个框架之后,我们应该已经可以发现koa和express的区别:
◼ 从架构设计上来说:
◼ express是完整和强大的,其中帮助我们内置了非常多好用的功能
◼ koa是简洁和自由的,它只包含最核心的功能,并不会对我们使用其他中间件进行任何的限制。
 甚至是在app中连最基本的get、post都没有给我们提供;
 我们需要通过自己或者路由来判断请求方式或者其他功能
◼ 因为express和koa框架他们的核心其实都是中间件:
 但是他们的中间件事实上,它们的中间件的执行机制是不同的,特别是针对某个中间件中包含异步操作时;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐