已经做了2年的膝关节炎,最近一些J.S,我遇到了这个1个大的例子。,node.js,express,hapijs,koa,Node.js,Express,Hapijs,Koa" /> 已经做了2年的膝关节炎,最近一些J.S,我遇到了这个1个大的例子。,node.js,express,hapijs,koa,Node.js,Express,Hapijs,Koa" />

Node.js “膝关节炎”如何帮助避免“?”猴子修补术;以及如何",;Hapi“;或;快报;don';你不会也这么做吗? 我很难理解为什么人们鼓吹Koa解决“猴子修补”问题(而需要修改预先打包的代码)。(见或) Koa在这方面有什么特别之处?HAPI是如何在这方面表达的? < P>已经做了2年的膝关节炎,最近一些J.S,我遇到了这个1个大的例子。

Node.js “膝关节炎”如何帮助避免“?”猴子修补术;以及如何",;Hapi“;或;快报;don';你不会也这么做吗? 我很难理解为什么人们鼓吹Koa解决“猴子修补”问题(而需要修改预先打包的代码)。(见或) Koa在这方面有什么特别之处?HAPI是如何在这方面表达的? < P>已经做了2年的膝关节炎,最近一些J.S,我遇到了这个1个大的例子。,node.js,express,hapijs,koa,Node.js,Express,Hapijs,Koa,假设您有一个发出响应的控制器,您希望截获该响应并对其进行处理(例如:gzip it,或将其转换为其他格式) 这很容易用膝关节炎来进行,因为你可以这样做: function myMw(ctx, next) { await next(); ctx.response.body = gzip(ctx.response.body); } 以上是一个虚构的例子,但你明白了 使用express,您的代码看起来像是垃圾。在express gzip中间件中很容易看到: 这与express Midd

假设您有一个发出响应的控制器,您希望截获该响应并对其进行处理(例如:gzip it,或将其转换为其他格式)

<>这很容易用膝关节炎来进行,因为你可以这样做:

function myMw(ctx, next) {
   await next();
   ctx.response.body = gzip(ctx.response.body);
}
以上是一个虚构的例子,但你明白了

使用express,您的代码看起来像是垃圾。在express gzip中间件中很容易看到:

这与express Middleware提供对HTTP套接字的直接访问以写入响应(使用
send()
)有关


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

你最好去问一个做过这种陈述的人。但由于Koa是从头开始写的,不必携带快速行李(包括早期节点反模式),代码是更整洁的。例如,路由器与框架分离。您必须修补路由器才能更改Express中的
app.get
的行为。@estus我认为这是关于应用中“必需”的第三方npm模块的声明。在膝关节炎中,猴子补丁第三方模块是不是更容易?(编辑:可能我读得太多了)取决于一个模块。Express可能需要使用更多的黑客才能使其正常工作。我建议邀请作者参加。HAPI的情况非常不同,因为它不试图使Fr.Engin的怪物“代码”HTTP API,而不是Express和膝关节炎。不管怎样,它在设计上也有自己的缺陷。好的,谢谢你的回答!关于这种情绪,你认为
Hapi
在哪里适合呢?对不起,我没有任何Hapi经验!那就不用担心了!谢谢你的回答!坦率地说,我不明白为什么人们仍然使用Express,因为他们关注的是结果。快递生态系统是广泛的。一个框架本身可能令人震惊,但如果它要求你自己重新发明轮子或调查事情,没有人能够记录它们或回答你的问题,这是一个表演的障碍。