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

How can I parse records on demand with Node.js?

本文关键字:记录 何使用 Node js      更新时间:2023-09-26

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

node-csv 还不能做到这一点,我发现最接近的是一行一行地读取,这需要重新发明 CSV 解析轮,并且会在多行记录上中断。

但是,让我们降低标准:如何使用 Node.js 逐个解析单行 CSV 记录?在大多数其他语言中,这是非常微不足道的任务。

据我了解,您只想将逗号分隔的值行解析为数组?如果是这样,请尝试以下方法:

https://npmjs.org/package/csvrow

解析单个"行"(也可以有嵌入的换行符):

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);
  });