Node.js 节点CSV解析器

Node.js 节点CSV解析器,node.js,csv,filestreams,Node.js,Csv,Filestreams,我使用的是节点包“csv”,在该包最明显的用例中遇到了一个问题,不确定如何继续。一揽子回购: 我需要, 1:读取csv文件,并对每行执行一个运算符。 2:读取整个csv文件后,执行操作并将结果写入新的csv文件 我被困在第一部分。下面是我在将一堆(看起来不一致的)示例连接在一起后得到的结果 var fs=require('fs'); var csv=需要('csv'); var transform=require('stream-transform'); var outputMap={}; v

我使用的是节点包“csv”,在该包最明显的用例中遇到了一个问题,不确定如何继续。一揽子回购:

我需要, 1:读取csv文件,并对每行执行一个运算符。 2:读取整个csv文件后,执行操作并将结果写入新的csv文件

我被困在第一部分。下面是我在将一堆(看起来不一致的)示例连接在一起后得到的结果

var fs=require('fs');
var csv=需要('csv');
var transform=require('stream-transform');
var outputMap={};
var baseStream=fs.createReadStream(_dirname+'/locationTaxonomy.csv');
基流
.pipe(csv.parse())
.pipe(csv.transform)(函数(记录){
outputMap[记录[2]]=记录;
返回记录;

}));转换流处理程序中的return语句导致流停止。 删除它可以读取完整的csv文件

var fs=require('fs');
var csv=需要('csv');
var transform=require('stream-transform');
var outputMap={};
var baseStream=fs.createReadStream(_dirname+'/locationTaxonomy.csv');
基流
.pipe(csv.parse())
.pipe(csv.transform)(函数(记录){
outputMap[记录[2]]=记录;
//return record;//删除此行

}));停止时有什么错误?是否总是在同一点停止?如果是,csv数据中是否存在格式问题?不过,我以前从未使用过
csv
,但我以前在生产中的大量数据上使用过很多次。你可以试试这个模块,看看它是否能让你走得更远。这可能有助于缩小问题的范围。如果遇到完全相同的问题,即解析在恰好16行之后停止(调用
transform
函数中的
console.log()
16次),而不管我如何在数据中移动行。我有一个类似这样的单行程序:
.pipe(transform(row=>data.push(row))
和来自arrow函数的隐式
返回就足以引起问题。重构到
.pipe(transform(row=>{data.push(row);}))
允许解析器遍历文件。我不明白为什么!