我很难理解为什么人们鼓吹Koa解决“猴子修补”问题(而人们需要修改预先打包的代码)。 (见https://www.quora.com/Should-I-learn-Express-js-or-Koa-js-for-node/answer/Yvan-Scher?share=1或http://blog.onclickinnovations.com/koa-js/)。
Koa在这方面有何特别之处? Hapi或Express在这方面怎么样不一样?
做了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。我估计大多数习惯性和大量的教程。快车很棒,但今天很痛苦。