Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 如果未读取响应,为什么节点http客户端会保持运行?_Javascript_Node.js - Fatal编程技术网

Javascript 如果未读取响应,为什么节点http客户端会保持运行?

Javascript 如果未读取响应,为什么节点http客户端会保持运行?,javascript,node.js,Javascript,Node.js,我刚刚开始使用Node.js,我正在尝试编写一个简单的http客户端,它只向服务器发送post请求 var req = http.request( { host : 'localhost', port: 3000, url : '/', method:'POST' },function(res){ con

我刚刚开始使用Node.js,我正在尝试编写一个简单的http客户端,它只向服务器发送post请求

var req = http.request(
        {
                host : 'localhost',
                port: 3000,
                url : '/',
                method:'POST'

        },function(res){
                console.log('res status - ' + res.statusCode);
                res.on('data', function(){}); //<--------

        }
);
var req=http.request(
{
主机:“localhost”,
港口:3000,
url:“/”,
方法:'POST'
},功能(res){
console.log('res status-'+res.statusCode);

res.on('data',function(){});//此行为是因为以下实现:
发出
http.request()
将创建具有以下行为的对象
http.ClientRequest

如果未添加“response”处理程序(即请求方法的第二个参数),则响应将被完全丢弃。但是,如果添加“response”事件处理程序,则必须通过调用response.read()来使用响应对象中的数据每当出现“可读”事件时,或通过添加“数据””处理程序,或通过调用“恢复()方法。在数据被消耗之前,“结束””事件不会触发。此外,在数据被读取之前,它将消耗内存,最终可能导致“进程内存不足”错误


您必须调用
req.end()
req.send()
或类似于终止并发回某些内容的东西。我认为这句话“我注意到,如果客户端没有通过调用最后一行来读取响应,那么客户端就不会终止”in OP意味着他想理解为什么当他注释掉“data”处理程序时,客户端不终止