我们在工作中使用request。我们现在可以访问http2来处理服务器到服务器的请求。
您知道任何使用http2的节点包与请求具有相同的api(ish)吗?

最佳答案

我也遇到同样的问题,找不到模块。这不是一个好的解决方案,但是您可以破解请求模块来添加http2。由于没有人插嘴说一个更好的答案,这值得一提。
我就是这么做的:
将http2作为布尔值添加到传入请求的options对象中。
在节点模块/请求运行中:

npm install http2

打开node_modules/request/request.js
需要在顶部附近安装http2模块:
, http2 = require('http2')

确保请求没有添加“host”头(在http2中不推荐使用,如果另一端使用http2节点模块,则会导致错误),因此将第304行(或左右)更改为:
if (!self.hasHeader('host') && !options.http2) {

将http2模块添加到第468行(左右)的对象声明中,使其成为:
, defaultModules = {'http:':http, 'https:':https, 'http2': http2}

然后在前一行的变量声明之后使用新模块发出请求。将此项添加到第471行(左右):
  if (options.http2) {
    protocol = 'http2';
  }

应用程序的其余部分可以保持不变,如果未设置options.http2,则请求的行为将始终保持不变。
在一个非常不科学的测试中,我发现做这个改变可以使一个服务的吞吐量增加大约25%。

关于node.js - 是否有使用http2的“请求”包?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37653110/

10-11 11:38