【问题标题】:nodeJS async function parse csv return data to other filenodeJS异步函数解析csv返回数据到其他文件
【发布时间】:2021-01-08 19:56:08
【问题描述】:

我正在使用 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);

但我的数据永远不会只是一个空对象。 如何让我的数据能够与其他功能“共享”?

谢谢

【问题讨论】:

    标签: node.js async-await puppeteer node-csv-parse


    【解决方案1】:

    由于您的函数是异步函数并且它们返回一个承诺,您可以执行类似的操作

    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);
             
              })()
    

    【讨论】:

    • 感谢您的提示!我最终这样做了:async function getData() { const records = await parseCSV.processFile(); return records; } const data = getData(); data.then(function(result) { console.table(result); }) 并像魅力一样工作:)
    • 你是对的!您的解决方案有效(因为首先不起作用,但我这边的错字......)两者都有效,但会让您保持“更短”:)
    猜你喜欢
    • 2015-04-21
    • 2018-08-12
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2019-12-31
    • 2021-08-13
    相关资源
    最近更新 更多