如何使用Node.js按需解析记录?

时间:2013-10-25 10:57:47

标签: javascript node.js csv

是否有Node模块可以解析CSV文件中的特定数量的记录?用例是解析大型日志文件,并根据请求将记录传送到分页客户端。

node-csv无法yet执行此操作,而我发现的最接近的是read lines one by one,这需要重新发明CSV解析轮,并且会破坏多行记录

但让我们降低标准:如何使用Node.js逐个解析单行CSV记录?大多数其他语言都很简单。

2 个答案:

答案 0 :(得分:1)

解析单个“行”(也可以嵌入换行符):

var csv = require('csv'); // node-csv

csv()
  .from.string(SINGLE_LINE_OF_CSV)
  .to.array(function(record) {
    console.log('R', record);
  });

我不确定“来自CSV文件的特定数量的记录”是什么意思,或者问题究竟是什么。一旦您阅读了所需金额,只需将回复发送回客户端即可。

编辑:如果您想实现分页,您也可以使用node-csv

var csv   = require('csv');
var skip  = 100;
var limit = 10;

csv()
  .from.path('file.csv')
  .on('record', function(row, index) {
    if (index >= skip && index < (skip + limit))
      console.log('R', index);
  });

答案 1 :(得分:1)

据我了解,您只想将逗号分隔的值解析为数组?如果是这样,试试这个:

https://npmjs.org/package/csvrow