Node.js node-csv模块 - 使用本地CSV文件

时间:2014-06-28 03:20:19

标签: javascript node.js parsing

我正在尝试使用新版本的node-csv节点模块进行一些CSV操作。 node-csv

我过去曾使用过perl,但这次想尝试使用JavaScript。我无法弄清楚如何导入本地CSV文件而不是使用内置生成器。 node-csv的文档没有说明如何执行此操作(尽管它确实提供了以前版本的示例)。

以下是示例代码,按预期工作。

var csv = require('csv');

var generator = csv.generate({seed: 1, columns: 2, length: 20});

var parser = csv.parse();
var transformer = csv.transform(function(data){
  return data.map(function(value){return value.toUpperCase()});
});
var stringifier = csv.stringify();

generator.on('readable', function(){
  while(data = generator.read()){
    parser.write(data);
  }
});

parser.on('readable', function(){
  while(data = parser.read()){
    transformer.write(data);
  }
});

transformer.on('readable', function(){
  while(data = transformer.read()){
    stringifier.write(data);
  }
});

stringifier.on('readable', function(){
  while(data = stringifier.read()){
    process.stdout.write(data);
  }
});

我打算使用FS模块,但不知道如何将本地文件传递给node-csv函数。

var fs = require('fs');

以下是PREVIOUS版本的示例,该版本使用完全不同的语法:

// node samples/sample.js
var csv = require('csv');
var fs = require('fs');
csv()
.from.stream(fs.createReadStream(__dirname+'/sample.in'))
.to.path(__dirname+'/sample.out')
.transform( function(row){
  row.unshift(row.pop());
  return row;
})
.on('record', function(row,index){
  console.log('#'+index+' '+JSON.stringify(row));
})
.on('end', function(count){
  console.log('Number of lines: '+count);
})
.on('error', function(error){
  console.log(error.message);
});

有什么建议吗?

0 个答案:

没有答案