我正在使用 Node 包“csv”,我在该包最明显的用例中遇到了一个问题,我不确定如何继续。包 repo :https://github.com/wdavidw/node-csv
我需要, 1:读入一个csv文件,对每一行进行一次运算。 2:整个csv文件读取完毕后,执行一个 Action ,将结果写入一个新的csv文件。
我卡在第一部分了。这是将一堆(看似不一致的)示例连接在一起后得到的结果。
var fs = require('fs');
var csv = require('csv');
var transform = require('stream-transform');
var outputMap = {};
var baseStream = fs.createReadStream(__dirname + '/locationTaxonomy.csv');
baseStream
.pipe(csv.parse())
.pipe(csv.transform(function(record){
outputMap[record[2]] = record;
return record;
}));
前面只读完 csv 文件的前 ~16 行,然后停止。 如果我将 baseStream 直接通过管道传输到 process.stdout,文件将被读取完成。关于如何完成这个看似微不足道的任务有什么想法吗?
最佳答案
转换流处理程序中的返回语句导致流停止。 删除它允许读取完整的 csv 文件
var fs = require('fs');
var csv = require('csv');
var transform = require('stream-transform');
var outputMap = {};
var baseStream = fs.createReadStream(__dirname + '/locationTaxonomy.csv');
baseStream
.pipe(csv.parse())
.pipe(csv.transform(function(record){
outputMap[record[2]] = record;
// return record; // remove this line
}));
关于node.js - Node CSV 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31574444/