Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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 在结束之前关闭NodeJS中的Http响应流_Node.js_Http_Csv_Stream - Fatal编程技术网

Node.js 在结束之前关闭NodeJS中的Http响应流

Node.js 在结束之前关闭NodeJS中的Http响应流,node.js,http,csv,stream,Node.js,Http,Csv,Stream,我在nodejs中使用requests模块发出请求,并对得到的响应进行流式处理。此响应流通过管道传输到csv解析器,并将记录填充到数组中。一旦我得到一个预设的记录计数,我想结束csv解析并关闭响应流。如何正确清理响应流。这是伪代码 var stream = request.get(url); stream.pipe(csvParser); var count = 15; csvParser.on("readable",function(){ while(record = csvParse

我在nodejs中使用requests模块发出请求,并对得到的响应进行流式处理。此响应流通过管道传输到csv解析器,并将记录填充到数组中。一旦我得到一个预设的记录计数,我想结束csv解析并关闭响应流。如何正确清理响应流。这是伪代码

var stream = request.get(url);
stream.pipe(csvParser);
var count = 15;
csvParser.on("readable",function(){
    while(record = csvParser.read()){
        if(records.length<count){
            records.push(record);
        } else {
            csvParser.end();
            //stream.close();
            //stream.unpipe();
            // stream.destroy();
        }
    }
});

csvParser.on("error",function(err){
    console.log("Error",err.message);
})

csvParser.on("finish",function(){
    //console.log("records",records);
    console.log("done");
})  
var-stream=request.get(url);
流管(csvParser);
var计数=15;
csvParser.on(“可读”,函数(){
while(record=csvParser.read()){

if(records.length没有可读取流的
close
方法。
close
方法是只关闭
fs
读取流的老方法(我不知道它是否还在工作)

在可读流中也没有方法
destroy

恐怕没有办法在流结束之前结束它

您可以停止从流中读取。在您的情况下,流在
流动模式下工作
,因此调用此方法时,
csvParser.read()
是对下一部分数据的请求。如果停止调用
csvParser.read()
,则此事件
csvParser.on(“可读”,function(){/code>停止触发

关于类似的案例,有一些很好的对话