跳到主要内容

认识

2023年05月31日
柏拉文
越努力,越幸运

一、认识


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