【发布时间】:2019-05-10 01:46:57
【问题描述】:
我正在尝试将 csv 文件的标头放入数组中,并尝试使用 csv-parser 来执行此操作。有两件事我在这里想不通:
1) 为什么代码最后一行的console.log 会先于其他任何东西触发?这也意味着我尝试记录的变量值未定义。
2) 为什么我的 getFields 函数没有返回新填充的标题数组?我可以从函数内部对结果数组及其所有新元素进行控制台记录,但实际上我不能返回充满元素的数组——它一直返回一个空数组。
代码如下:
const express = require('express')
const app = express()
const port = 3000
const csv = require('csv-parser')
const fs = require('fs')
function getFields (filePath) {
let results = [];
fs.createReadStream(filePath)
.pipe(csv())
.on('headers', (headers) => {
let values = Object.values(headers);
values.forEach(function(element) {
results.push(element);
});
console.log('I am actually getting results here: ', results);
return results;
});
}
const omg = getFields(thisIsAFilePath)
console.log('This console.log is firing before anything else: ', omg)
【问题讨论】:
标签: javascript node.js node-csv-parse