标签: fast-csv

Node.js fast-csv 同步读取文件并返回数组

我正在尝试读取 .csv 文件并使用以下代码将其分配给数组:

const fs = require("fs");
const csv = require("@fast-csv/parse");

let data = []

csv
  .parseFile("./downloads/aggiornamento.csv", { skipRows: 2 })
  .on("error", (error) => console.error(error))
  .on("data", (row) => {
    let obj = {};
    obj["item_id"] = row[2];
    obj["qty"] = row[20];

    data.push(obj);
    console.log(obj);
  })
  .on("end", function () {
    return data;
  });
Run Code Online (Sandbox Code Playgroud)

但是,读取的文件fast-csv是流,因此我只能逐行处理。我需要在第二个时刻调用一些 API 服务的完整数组,因此我想同步读取文件,追加每一行,并在最后返回数组,这样,在第二个时刻,我可以包装上一个在函数中编写代码,并以如下方式获取数组:

const data = readCSVSynchronously()

我怎样才能做到这一点fast-csv

node.js fast-csv

12
推荐指数
1
解决办法
9383
查看次数

类型错误:csv.fromPath 不是函数

我正在使用fast-csv读取我的 csv 文件,但它给了我这样的错误

UnhandledPromiseRejectionWarning: TypeError: csv.fromPath is not a function

这是我的代码:

const fileRows = [];
console.log("req.file.path",req.file.path)
// open uploaded file
csv.fromPath(req.file.path)
  .on("data", function (data) {
    fileRows.push(data); // push each row
  })
  .on("end", function () {
    console.log(fileRows);
    //fs.unlinkSync(req.file.path);   // remove temp file

    const validationError = validateCsvData(fileRows);
    if (validationError) {
      return res.status(403).json({ error: validationError });
    }
    //else process "fileRows" and respond
    return res.json({ message: "valid csv" })
  })
Run Code Online (Sandbox Code Playgroud)

csv node.js express fast-csv

2
推荐指数
1
解决办法
2118
查看次数

标签 统计

fast-csv ×2

node.js ×2

csv ×1

express ×1