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