Я пытаюсь разобрать несколько файлов CSV в один JSON файл.
Моя проблема в том, что я не могу повторно использовать поток чтения, так как он не обновляет файл, из которого он читает. Итак, для каждой итерации l oop я продолжаю читать первый переданный ему файл csv.
Вот код, который я использую для чтения всех файлов CSV в каталоге, а затем обертывания экземпляра of createReadStream
в обещании, ожидая результата, а затем переходим к синтаксическому анализу следующего файла CSV. (Он не считывает значения следующего файла CSV, он просто возвращает результат каждого переданного ему первого файла CSV)
Вот код, который я использую
const path = require("path");
const fs = require("fs");
const parse = require("csv-parse");
const parser = parse({
delimiter: ","
});
function parseCSVFile(file) {
return new Promise((resolve, reject) =>
fs
.createReadStream(file)
.pipe(parser)
.on("data", (data) => {
console.log(data);
})
.on("end", () => {
resolve();
})
.on("error", (error) => reject(error))
)
}
async () => {
const csvFiles = fs.readdirSync(path.join(__dirname, "/csvFiles"));
for (let file of csvFiles) {
await parseCSVFile(path.join(file);
}
})();
Любая помощь / совет приветствуются!