认识
一、认识
Koa 最流行的 Node.js Web
框架, 核心目标都是简化 HTTP
服务器开发。Koa
追求极简和现代化,去掉内置功能, 完全基于 async/await
,并摒弃回调, 代码更清晰, 提供更灵活的中间件机制。对于中间件, Koa
内部实现通过 Promise.resolve(fn(context, dispatch.bind(null, i + 1)));
执行 next
, 基于 async/await
和 Promise
链, 所以 next
可以很好的支持异步操作。
二、对比
2.1 Koa VS Express
Koa 最流行的 Node.js Web
框架, 核心目标都是简化 HTTP
服务器开发。Koa
追求极简和现代化,去掉内置功能, 完全基于 async/await
,并摒弃回调, 代码更清晰, 提供更灵活的中间件机制。对于中间件, Koa
内部实现通过 Promise.resolve(fn(context, dispatch.bind(null, i + 1)));
执行 next
, 基于 async/await
和 Promise
链, 所以 next
可以很好的支持异步操作。
[Express] 最流行的 Node.js Web
框架, 核心目标都是简化 HTTP
服务器开发。Express
追求快速开发,内置大量功能(路由、模板引擎、静态文件服务等),适合小型和中型应用。Express
早期主要使用回调(callback
),但后续也支持 Promise
和 async/await
, 但 Express
仍然保留了早期回调风格,可能导致 callback hell
(回调地狱), 历史包袱重。对于中间件, Express
通过 next()
控制中间件执行顺序, 内部实现通过 next()
直接执行, 所以 next
在有异步操作的时候不会处理结果,所以对有异步的操作不是特别好。