gpt4 book ai didi

node.js - Koa 如何帮助避免 "monkey patching"以及 "Hapi"或 "Express"如何不做同样的事情?

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:51 25 4
gpt4 key购买 nike

我很难理解为什么人们宣扬 Koa 来解决“猴子补丁”问题(而人们需要修改预先打包的代码)。 (参见https://www.quora.com/Should-I-learn-Express-js-or-Koa-js-for-node/answer/Yvan-Scher?share=1http://blog.onclickinnovations.com/koa-js/)。

Koa 在这方面有何特别之处? Hapi 或 Express 在这方面有何不同?

最佳答案

我已经做了 2 年的 Koa,最近还做了一些express.js,我遇到了 1 个这样的大例子。

假设您有一个发出响应的 Controller ,并且您想要拦截该响应并对其执行某些操作(例如:对其进行 gzip 压缩,或将其转换为其他格式)。

这在 koa 中很容易本地工作,因为你可以这样做:

function myMw(ctx, next) {
await next();
ctx.response.body = gzip(ctx.response.body);
}

上面是一个虚构的例子,但你明白了。

如果使用express,你的代码看起来绝对是垃圾。在express gzip中间件中很容易看到:

https://github.com/expressjs/compression/blob/master/index.js

这与以下事实有关:快速中间件提供对 HTTP 套接字的直接访问以写入响应(使用 send())。

我怀疑这就是这种情绪的来源。坦率地说,我不明白为什么人们仍然使用 Express。我认为主要是习惯性的和大量的教程。 Express很棒,但今天很痛苦。

关于node.js - Koa 如何帮助避免 "monkey patching"以及 "Hapi"或 "Express"如何不做同样的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52347252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com