「1分钟--前端06」nodejs,express,koa

一.Express中间件原理详解

1.中间件本质:就是一个函数;

2.中间件功能:

(1)执行任何代码;(2)修改请求和响应对象;(3)调用堆栈的下一个中间件;

通俗的理解,就像一个管道,新的管道可以对流过的请求,数据做处理;

3.中间件分类:

五类,原理相同,用法不同而已;

(1)应用级中间件;(2)路由级;(3)错误处理类;(4)内置(5)第三方;

4.原理:

(1)源码中与中间件相关的三个文件

node源码

(2)application.js中的use方法,把我们app.use注册的中间件和路由方法交给了Router类来处理。

(3)子中间件,同时挂载一系列中间件函数,就会在一个挂载点上创建子中间件栈;


二.Express和KOA的对比

1.相同点:基于node的服务端开发框架,处理的重点三个:

HTTP Request和HTTPRespone两个对象的封装和处理;

应用声明周期的维护;

视图的处理;

2.总体的区别:

(1)express基于connect中间件框架,自身封装了很多功能,比如路由、视图;

KOA基于co中间件框架,自身集成的功能很少,需要自行require;

(2)回调函数的特性:

KOA1是基于ES6的generator的,解决了回调黑洞问题;

KOA2把generatoryield换成语义化更好async和await了;

3.HTTP Request对象

(1)express使用req.query 即可拿到get请求的url格式化对象;

post请求需要body-parser中间件;

(2)koa使用this.request.query拿到get请求的url格式化对象;

post请求需要用co-body中间件;

4.路由Route

(1)express中使用,all(所有),get,post

注意app.get,一个参数表示获取公共的配置项,两个参数时才作为路由处理。

(2)KOA中要引入route中间件使用get、post方法,再把route挂载到app.use上;

5.HTTP Respone

express使用res对象;KOA绑定到ctx.body上,输出json需要引人中间件;


三.基本API: 4句和5句

image

推荐阅读更多精彩内容