前言:
眼前大家对“nodejs koa”可能比较着重,看官们都想要知道一些“nodejs koa”的相关资讯。那么小编在网络上网罗了一些对于“nodejs koa””的相关知识,希望看官们能喜欢,各位老铁们一起来学习一下吧!一.Express中间件原理详解
1.中间件本质:就是一个函数;
2.中间件功能:
(1)执行任何代码;(2)修改请求和响应对象;(3)调用堆栈的下一个中间件;
通俗的理解,就像一个管道,新的管道可以对流过的请求,数据做处理;
3.中间件分类:
五类,原理相同,用法不同而已;
(1)应用级中间件;(2)路由级;(3)错误处理类;(4)内置(5)第三方;
4.原理:
(1)源码中与中间件相关的三个文件
(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句
标签: #nodejs koa