Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 是否有一个“问题”;“请求”;喜欢使用http2的包吗?_Node.js_Http_Request_Http2 - Fatal编程技术网

Node.js 是否有一个“问题”;“请求”;喜欢使用http2的包吗?

Node.js 是否有一个“问题”;“请求”;喜欢使用http2的包吗?,node.js,http,request,http2,Node.js,Http,Request,Http2,我们在工作中使用。现在,我们可以访问http2进行服务器到服务器的请求 您知道有哪个节点包的api(ish)与使用http2的请求相同吗?我遇到了同样的问题,找不到模块。这不是一个好的解决方案,但是您可以通过破解请求模块来添加http2。由于没有人提出更好的答案,因此值得一提 这就是我所做的: 将http2作为布尔值添加到传递到请求的options对象中 在节点_模块/请求运行中: npm install http2 打开node_modules/request/request.js 需要靠近

我们在工作中使用。现在,我们可以访问
http2
进行服务器到服务器的请求


您知道有哪个节点包的api(ish)与使用http2的请求相同吗?

我遇到了同样的问题,找不到模块。这不是一个好的解决方案,但是您可以通过破解请求模块来添加http2。由于没有人提出更好的答案,因此值得一提

这就是我所做的:

将http2作为布尔值添加到传递到请求的options对象中

在节点_模块/请求运行中:

npm install http2
打开node_modules/request/request.js

需要靠近顶部的某个位置安装http2模块:

, http2 = require('http2')
确保请求没有添加“主机”头(在HTTP2中已弃用,如果另一端正在使用HTTP2节点模块,则会导致错误),因此将第304行(或so)更改为:

将http2模块添加到第468行(大约)的对象声明中,使其成为:

, defaultModules = {'http:':http, 'https:':https, 'http2': http2}
然后,在前一行的变量声明之后,请求使用新模块。将其添加到第471行(大约):

应用程序的其余部分可以保持不变,如果未设置options.http2,则请求的行为与往常一样

在一个非常不科学的测试中,我发现进行此更改将一个服务的吞吐量提高了约25%

, defaultModules = {'http:':http, 'https:':https, 'http2': http2}
  if (options.http2) {
    protocol = 'http2';
  }