gpt4 book ai didi

node.js - 在设置监听器之前调用 nodejs request.end() 方法

转载 作者:搜寻专家 更新时间:2023-10-31 23:09:23 26 4
gpt4 key购买 nike

在 nodejs 文档中 http://nodejs.org/api/http.html#http_event_connect_1示例代码在设置监听器(即 req.on(...) 方法)之前调用 request.end() 。示例代码片段如下所示。

  var req = http.request(options);
req.end();

req.on('connect', function(res, socket, head) {
console.log('got connected!');

// make a request over an HTTP tunnel
socket.write('GET / HTTP/1.1\r\n' +
'Host: www.google.com:80\r\n' +
'Connection: close\r\n' +
'\r\n');
socket.on('data', function(chunk) {
console.log(chunk.toString());
});
socket.on('end', function() {
proxy.close();
});
});

如果不是这种情况,请求会在监听器设置之前立即结束,并且可能永远不会调用监听器。

最佳答案

req.end() 调用表示您已完成向服务器发送请求主体(在本例中没有请求主体),而不是完整的请求/响应周期完全的。此外,http.request 将延迟开始连接到服务器,直到下一次通过运行循环,让您有机会设置您的监听器。

所以,本质上,它在做这样的事情:

  1. 创建新请求
  2. 告诉请求我们已经发送完我们要发送的数据
  3. 告诉请求让我们知道我们何时连接到服务器

下一个运行循环传递

  1. 尝试连接到服务器

连接成功后

  1. 发送请求等

关于node.js - 在设置监听器之前调用 nodejs request.end() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com