是否有一个 Node 模块可以从 CSV 文件中解析特定数量的记录?用例是解析大型日志文件并根据请求将记录传递给分页客户端。
node-csv还不能做到这一点,我发现最接近的是逐行读取,这需要重新发明 CSV 解析轮,并且会破坏多行记录。
但是让我们降低标准:如何使用 Node.js 逐一解析单行 CSV 记录?在大多数其他语言中,这是非常微不足道的任务。
据我了解,您只想将逗号分隔的值行解析为数组?如果是这样,试试这个:
解析单个“行”(也可以嵌入换行符):
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);
});