跳到主要内容

认识

一、认识


Koa 最流行的 Node.js Web 框架, 核心目标都是简化 HTTP 服务器开发。Koa 追求极简和现代化,去掉内置功能, 完全基于 async/await,并摒弃回调, 代码更清晰, 提供更灵活的中间件机制。对于中间件, Koa 内部实现通过 Promise.resolve(fn(context, dispatch.bind(null, i + 1))); 执行 next, 基于 async/awaitPromise 链, 所以 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/awaitPromise 链, 所以 next 可以很好的支持异步操作。

[Express] 最流行的 Node.js Web 框架, 核心目标都是简化 HTTP 服务器开发。Express 追求快速开发,内置大量功能(路由、模板引擎、静态文件服务等),适合小型和中型应用。Express 早期主要使用回调(callback),但后续也支持 Promiseasync/await, 但 Express 仍然保留了早期回调风格,可能导致 callback hell(回调地狱), 历史包袱重。对于中间件, Express 通过 next() 控制中间件执行顺序, 内部实现通过 next() 直接执行, 所以 next 在有异步操作的时候不会处理结果,所以对有异步的操作不是特别好。