nodeJS异步函数解析csv return数据到其他文件

nodeJS async function parse csv return data to other file

我正在使用 puppeteer 为内部用户创建一个小工具。

基本上我得到了一个 csv 文件,其中包含一些我“读取”并填写表格的数据。

当我尝试清理我的项目以使其可重用时,我遇到了一些困难:

我创建一个文件名parsecsv.js

const config = require('../config.json');
const parse = require('csv-parse');
const fs = require('fs');

const processFile = async () => {
    records = []
    const parser = fs
        .createReadStream(config.sourceFile)
        .pipe(parse({
            // CSV options
            from_line: 1,
            delimiter: ";",
        }));
    let i =1;
    for await (const record of parser) {
        records.push(record)
        i++;
    }
    return records
}

const processFileData = async () => {
    const records = await processFile()
    console.info(records);
    return records
}


module.exports ={
    processFile, processFileData
}

在我制作的另一个 Js 文件中

const parseCSV = require('./src/ParseCsv');
const records = parseCSV.processFileData();
const data = parseCSV.processFile();
console.log(typeof records);
console.table(records);
console.log(typeof data);
console.table(data);

但我从来没有得到我的数据只是一个空对象。 我如何才能让我的数据能够与其他功能“共享”?

谢谢

因为你的函数是异步的,而且它们 return 是一个承诺,你可以做类似的事情

const parseCSV = require('./src/ParseCsv');
(async () => {
        const records = await parseCSV.processFileData();
        const data = await parseCSV.processFile();
        console.log(typeof records);
        console.table(records);
        console.log(typeof data);
        console.table(data);
         
          })()