答案 0 :(得分:1)
已经完成Koa两年了,最近又有了一些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。我认为大部分都是习惯性的教程。 Express 很棒,但是今天很痛苦。