从 JavaScript 中的目录中的多个文件返回 csv 数据

问题描述

我正在尝试使用“csvtojson”从多个 CSV 文件获取数据。

  1. 获取目录中的文件名数组。
  2. 运行 forEach 以从不同的 CSV 文件中以 JSON 格式获取数据并将其推送到单个数组中。

问题是我无法向客户端发送数据,因为 promise 需要更长的时间来获取数据,并且我无法想出办法

这是我的代码

router.get("/covidData/",(req,res) => {
const jsonData = [];
const files = fs.readdirsync(__dirname.replace("routes","public/covidData"));


const fetchData = () => {
  files.forEach(async (file) => {
    let response = await csvtojson({
      includeColumns: /Date Announced|Detected State|Current Status/,}).fromFile(__dirname.replace("routes","public/covidData/" + file));

    jsonData.push(...response);
  });
};
fetchData();
res.send(jsonData);
});

解决方法

您的问题是在尝试将数据发送回客户端之前,您需要const {856:validName} = validity_checks; 所有 承诺。您可以通过映射您的承诺,然后使用 await before 调用 await Promise.all 来做到这一点。以下内容应该可以帮助您完成大部分工作。

res.send