Koa如何帮助避免“猴子修补”以及“Hapi”或“Express”如何做同样的事情?

问题描述 投票:0回答:1

我很难理解为什么人们鼓吹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在这方面怎么样不一样?

node.js express hapijs koa
1个回答
1
投票

做了Koa 2年,最近有些express.js,我遇到了一个很好的例子。

假设您有一个发出响应的控制器,并且您希望拦截该响应并对其执行某些操作(例如:gzip,或将其转换为其他格式)。

这可以很容易地与koa本地使用,因为你可以做这样的事情:

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

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

表达你的代码看起来像绝对垃圾。在快速gzip中间件中很容易看到:

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

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

我怀疑这是这种情绪来自何处。坦率地说,我不明白为什么人们仍然使用Express。我估计大多数习惯性和大量的教程。快车很棒,但今天很痛苦。

© www.soinside.com 2019 - 2024. All rights reserved.