Node.js 从sftp服务器传输csv文件

Node.js 从sftp服务器传输csv文件,node.js,csv,stream,sftp,csv-parser,Node.js,Csv,Stream,Sftp,Csv Parser,我试图从sftp服务器获取一个csv文件,然后将其流式处理以将其解析为json(而不将该文件保存在fs中) 我正在使用ssh2sftpclient连接到服务器并获取文件。到目前为止还不错,但当我使用csv解析器将其解析为json时,这就是我被阻止的地方。我还举了另一个例子,文件在文件系统中,它运行良好 但使用流似乎是不可能的。 下面是我正在运行的代码片段,下面是我遇到的错误 导出函数getCSV(filePath){ 返回状态=>{ const sftp=新客户端(); //创建流,可写且可读

我试图从sftp服务器获取一个csv文件,然后将其流式处理以将其解析为json(而不将该文件保存在fs中)

我正在使用
ssh2sftpclient
连接到服务器并获取文件。到目前为止还不错,但当我使用
csv解析器
将其解析为json时,这就是我被阻止的地方。我还举了另一个例子,文件在文件系统中,它运行良好

但使用流似乎是不可能的。 下面是我正在运行的代码片段,下面是我遇到的错误

导出函数getCSV(filePath){
返回状态=>{
const sftp=新客户端();
//创建流,可写且可读
让inoutStream=新变换({
转换(块、编码、回调){
这个。推(块);
回调();
},
});
返回sftp
.connect(state.configuration)
.然后(()=>{
process.stdout.write('已连接。✓\n');
inoutStream=sftp.get(文件路径);
返回inoutStream;
})
。然后(流=>{
process.stdout.write('将行解析为JSON。\n');
让结果=未定义;
让readStream=new可读({
objectMode:true,
read(){},
});
readStream.pipe(流);
返回新承诺((解决、拒绝)=>{
读流
.pipe(csv())
.on('data',行=>{
控制台日志(行);
结果:推动(世界其他地区);
})
.on('end',()=>{
console.log('end');
});
console.log('result',result);
决心(结果);
})。然后(json=>{
...
});
})
.然后(状态=>{
...
})
.catch(e=>{
...
});
};
}