摘要:使用承诺和异步功能来摆脱回调地狱的应用程序,并简化错误处理。它暴露了自己的和对象,而不是的和对象。因此,可被视为的模块的抽象,其中是的应用程序框架。这使得中间件对于整个堆栈而言不仅仅是最终应用程序代码,而且更易于书写,并更不容易出错。
Koa 与 Express
此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star.
在理念上,Koa 旨在 “修复和替换节点”,而 Express 旨在 “增加节点”。
Koa 使用承诺和异步功能来摆脱回调地狱的应用程序,并简化错误处理。
它暴露了自己的 ctx.request 和 ctx.response 对象,而不是 node 的 req 和 res 对象。
另一方面,Express 通过附加的属性和方法增加了 node 的 req 和 res 对象,并且包含许多其他 “框架” 功能,如路由和模板,而 Koa 则没有。
因此,Koa 可被视为 node.js 的 http 模块的抽象,其中 Express 是 node.js 的应用程序框架。
功能 | Koa | Express | Connect |
---|---|---|---|
Middleware Kernel | ✓ | ✓ | ✓ |
Routing | - | ✓ | - |
Templating | - | ✓ | - |
Sending Files | - | ✓ | - |
JSONP | - | ✓ | - |
因此,如果您想要更接近 node.js 和传统的 node.js 样式编码,那么您可能希望坚持使用Connect/Express 或类似的框架。
如果你想摆脱回调,请使用 Koa。
由于这种不同的理念,其结果是传统的 node.js “中间件”(即“(req,res,next)”的函数)与Koa不兼容。 你的应用基本上要重新改写了。
Koa 替代 Express?它更像是 Connect,但是很多 Express 的好东西被转移到 Koa 的中间件级别,以帮助形成更强大的基础。 这使得中间件对于整个堆栈而言不仅仅是最终应用程序代码,而且更易于书写,并更不容易出错。
通常,许多中间件将重新实现类似的功能,甚至更糟的是不正确地实现它们, 如签名的cookie 加密等通常是应用程序特定的,而不是中间件特定的。
Koa 替代 Connect?不,只是不同的功能,现在通过构建器也可以让我们用较少的回调编写代码。 Connect 同样可以,有些人可能仍然喜欢它,这取决于你喜欢什么。
为什么 Koa 不是 Express 4.0?Koa 与现在所知的 Express 差距很大,设计根本上有很大差异,所以从 Express 3.0 迁移到Express 4.0 将有意味着重写整个应用程序,所以我们考虑创建一个新的库。
Koa 与 Connect/Express 有哪些不同? 基于 Promises 的控制流程没有回调地狱。
通过 try/catch 更好的处理错误。
无需域。
Koa 非常精简不同于 Connect 和 Express, Koa 不含任何中间件.
不同于 Express, 不提供路由.
不同于 Express, 不提供许多便捷设施。 例如,发送文件.
Koa 更加模块化.
Koa 对中间件的依赖较少例如, 不使用 “body parsing” 中间件,而是使用 body 解析函数。
Koa 抽象 node 的 request/response减少攻击。
更好的用户体验。
恰当的流处理。
Koa 路由(第三方库支持)由于 Express 带有自己的路由,而 Koa 没有任何内置路由,但是有 koa-router 和 koa-route 第三方库可用。同样的, 就像我们在 Express 中有 helmet 保证安全, 对于 koa 我们有 koa-helmet 和一些列的第三方库可用。
如果这篇文章对您有帮助, 感谢 下方点赞 或 Star GitHub: koa-docs-Zh-CN 支持, 谢谢.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/89470.html
摘要:常见问题此系列文章的应用示例已发布于可以帮助改进或关注更新欢迎替代它更像是,但是很多的好东西被转移到的中间件级别,以帮助形成更强大的基础。这使得中间件对于整个堆栈而言不仅仅是最终应用程序代码,而且更易于书写,并更不容易出错。 常见问题 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. Koa...
此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. 相关 API 上下文(Context) 请求(Request) 响应(Response) 安装 Koa 依赖 node v7.6.0 或 ES2015及更高版本和 async 方法支持. 你可以使用自己喜欢的版本管理器快速安装支持的 node 版本:...
摘要:的对象提供了用于处理响应的方法,该响应委托给。应用对象是与的服务器和处理中间件注册的接口,从发送到中间件,默认错误处理,以及上下文,请求和响应对象的配置。 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. showImg(https://segmentfault.com/img/bVNQYf...
摘要:一个迁移方式是逐个更新它们。删除特定的日志记录行为对于环境的显式检查从错误处理中删除。直接或它不再使用并已废弃。支持仍然支持分支,但应该不会得到功能性更新。除了此迁移指南外,文档将针对最新版本。 从 Koa v1.x 迁移到 v2.x 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. 新的中...
摘要:当中间件运行时,它必须手动调用来运行下游中间件。例如,这个中间件从读取文件名,然后在将给指定合并结果之前并行读取每个文件的内容。当你无法控制中间件的名称时,这很有用。 指南 此系列文章的应用示例已发布于 GitHub: koa-docs-Zh-CN. 可以 Fork 帮助改进或 Star 关注更新. 欢迎 Star. 本指南涵盖的 Koa 主题不与 API 直接相关,例如编写中间件的最...
阅读 990·2021-11-16 11:44
阅读 1344·2019-08-30 13:12
阅读 2357·2019-08-29 16:05
阅读 3025·2019-08-28 18:29
阅读 865·2019-08-26 13:41
阅读 3180·2019-08-26 13:34
阅读 2560·2019-08-26 10:35
阅读 910·2019-08-26 10:28