详解express与koa中间件模式对比
最近在学习koa的使用, 由于koa是相当基础的web框架,所以一个完整的web应用所需要的东西大都以中间件的形式引入,比如koa-router, koa-view等。在koa的文档里有提到:koa的中间件模式与express的是不一样的,koa是洋葱型,express是直线型,至于为什么这样,网上很多文章并没有具体分析。app.use 就是往中间件数组中塞入新的中间件。中间件的执行则依靠私有方法 app.handle 进行处理,express也是相同的道理。这里暂且不说具体实现方法,但是确实就是回调函数。跟async/await的特性并无任何关系。connect与koa中间件模式区别的核心就在于next的实现,让我们简单看下二者next的实现。其他处理sub app以及路由的部分都删除了。所谓中间件暂停也只是回调函数的原因。
下载地址
用户评论