gpt4 book ai didi

node.js - 我应该如何使用 csv 解析器从 fs.createReadStream() 返回数据

转载 作者:行者123 更新时间:2023-12-04 16:41:35 24 4
gpt4 key购买 nike

我有这个功能

function getData(file, type) {
let data = [];
fs.createReadStream(file)
.pipe(csv({headers: false, separator: ';',}))
.on('data', (row) => {
let item = {
date: row[0],
value: row[1]
};
let item2 = {
date: moment(row[0], "DD-MM-YYYY HH:mm").add(30, "minutes").format("DD/MM/YYYY HH:mm"),
value: row[2]
};
data.push(item);
data.push(item2);
})
.on('end', () => {
return data;
});
}

我想返回在csv中解析的数据,但是当我在 .on中返回数据时方法,数据为空。

我该怎么做?

最佳答案

我建议使用基于 promise 的方法,您可以从 getData 函数返回一个 promise ,然后根据需要解决或拒绝。

这使调用函数的事情变得更加清晰。

例如:

function getData(file, type) {
let data = [];
return new Promise((resolve, reject) => {
fs.createReadStream(file)
.on('error', error => {
reject(error);
})
.pipe(csv({headers: false, separator: ';',}))
.on('data', (row) => {
let item = {
date: row[0],
value: row[1]
};
let item2 = {
date: moment(row[0], "DD-MM-YYYY HH:mm").add(30, "minutes").format("DD/MM/YYYY HH:mm"),
value: row[2]
};
data.push(item);
data.push(item2);
})
.on('end', () => {
resolve(data);
});
});
}

async function testGetData() {
try {
const data = await getData("test.csv", {});
console.log("testGetData: parsed CSV data:", data);
} catch (error) {
console.error("testGetData: An error occurred: ", error.message);
}
}

testGetData();

关于node.js - 我应该如何使用 csv 解析器从 fs.createReadStream() 返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59714395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com