Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Javascript 为什么节点https模块文档示例将tls选项同时传递给代理和请求选项?_Javascript_Node.js_Ssl_Tls1.2 - Fatal编程技术网

Javascript 为什么节点https模块文档示例将tls选项同时传递给代理和请求选项?

Javascript 为什么节点https模块文档示例将tls选项同时传递给代理和请求选项?,javascript,node.js,ssl,tls1.2,Javascript,Node.js,Ssl,Tls1.2,在节点中, 关于https.request,示例如下所示: const options = { hostname: 'encrypted.google.com', port: 443, path: '/', method: 'GET', key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')

在节点中, 关于https.request,示例如下所示:

const options = {
  hostname: 'encrypted.google.com',
  port: 443,
  path: '/',
  method: 'GET',
  key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'),
  cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem')
};
options.agent = new https.Agent(options);

const req = https.request(options, (res) => {
  // ...
});
这里让我感到困惑的是,请求选项也被传递给代理对象,然后被分配给options对象的Agent属性,以替换默认的globalAgent对象

代理对象不接受tls连接选项-

接口代理扩展了http.AgentOptions、tls.ConnectionOptions
其中包括“密钥”和“证书”等


我不明白的是,为什么要将这些tls选项同时传递给请求方法和代理构造函数?理论上,配置代理对象应该足以让请求使用tls,还是我误解了代理的功能?老实说,我已经阅读了一些文档页面,但我仍然不清楚代理是否只是管理连接池,或者它是否也基本上“负责”发出和配置实际请求。

您显示的代码不在。。。?按字面意思搜索
选项。agent
不会出现任何结果。我已经查看了页面的当前版本(v14)、LTS版本和其他几个版本。没有
options.agent
任何地方。啊,我在上找到了它,而不是在你链接的页面上。只是在示例中看起来像是打字错误。我会在github上对此提出一个问题。我假设您的意思是,使用TLS选项配置代理应该足以配置使用TLS的请求?请遵循以下问题: