node
node
node
[TOC]
koa中间件有哪些?
koa-static: 静态文件
koa-better-body:解析表单
mysql/co-mysql:使用co-mysql包装mysql,使它可以配合koa使用
参考资料:
koa 洋葱模型?
特点 :
next函数把中间件分成了两部分,导致中间件执行了两次
打印执行的顺序 a1,b1,b2,a2, 理解成镜向翻转(洋葱进入/出去的对称感)
洋葱模型执行流程:
外层中间件进行前期处理(next前的逻辑)
调用next,将控制流交给下个中间件,并await其完成,直到后面没有中间件或者没有Next函数执行为止
完成后一层层回溯执行各个中间件的后期处理(next后的逻辑)
参考资料: Koa洋葱模型 从理解到实现
express 、koa的区别?
express就是组合了很多功能的koa; koa唯一多了的一个功能就是中间件可以像洋葱一样嵌套(express完全可以实现这样一个功能);异步处理如:promise,generator,callback, async/await thunk 都是浮云,完全可以用任何一种处理异步的方式写任何框架
一、相同点:
都是web Framework 网站框架
二、不同点:
express
特点:
更贴合web Framework的概念,自带Router、路由规则;
事件处理方式使用的回调函数;
优点:历史更久,文档更完善,资料更多
缺点:不能忍的callback
koa
特点:
更多是一个中间件框架,提供一个架子,几乎所有功能都是需要第三方中间件完成(功能更简单,更轻量)
事件处理方式利用生成器函数(Generator Function)来作为响应器
优点:借助promise和generator的能力,丢掉了callback
(koa2.x和1.x最大的区别就是使用ES7中的Async/Await的特性,代替了co的Generator Function语法)
缺点:Connect/Express中间件基本不能重用,基本要重写
最后更新于