【发布时间】:2020-10-29 02:28:53
【问题描述】:
我正在使用 csv-parser npm 包并进行示例 csv 解析。我唯一的困惑是在运行这些函数后访问已解析的数组。我知道我在 .on('data') 中推送数据,然后在 .on('end'); 中执行 console.log(results); 语句以显示正在存储的内容。为什么我在运行这些函数后尝试访问results 时会得到未定义。 results不获取存储的信息吗?
const csv = require('csv-parser');
const fs = require('fs');
const results = [];
fs.createReadStream('demo.csv')
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => {
console.log(results);
});
【问题讨论】:
-
从
csv()调用中删除() -
我刚刚尝试运行您的代码,但没有任何问题(节点 v12.16.2)。你确定 demo.csv 不是空文件吗?
-
@RandyCasburn 感谢您的评论,但我仍然收到
Type Error: dest.on is not a function -
@A.DUPONCHEL demo.csv 有两行,分别是 ID 和电子邮件列。我可以在
.on('end', () => { console.log(results);});中得到结果,但是如果我在createReadStream之后放置console.log(),结果是未定义的,这有意义吗? -
当您删除
()并得到dest.on is not a function时,这意味着csv()函数没有返回带有on()方法的对象。这很可能意味着csv()没有返回 Stream。
标签: javascript node.js csv