Javascript 在filestream和cvparser上解析数据时出现问题
我在与同事一起开发的项目中阅读这段代码时遇到问题。如果你能帮我,告诉我那段代码的意思,我将不胜感激。在那篇文章中,我得到了technologies.csv文件,我们需要解析它,如果有错误,我们必须对此错误抛出异常。代码的末尾有一些卡片,但我不知道这张卡片是什么意思。在最后我们必须导出带有数据的模块,我认为数据是来自const和编程语言。如果有人能详细解释它,那就太完美了。提前感谢!:)Javascript 在filestream和cvparser上解析数据时出现问题,javascript,arrays,performance,constants,Javascript,Arrays,Performance,Constants,我在与同事一起开发的项目中阅读这段代码时遇到问题。如果你能帮我,告诉我那段代码的意思,我将不胜感激。在那篇文章中,我得到了technologies.csv文件,我们需要解析它,如果有错误,我们必须对此错误抛出异常。代码的末尾有一些卡片,但我不知道这张卡片是什么意思。在最后我们必须导出带有数据的模块,我认为数据是来自const和编程语言。如果有人能详细解释它,那就太完美了。提前感谢!:) const fs = require('fs'); const parse = require('csv-pa
const fs = require('fs');
const parse = require('csv-parse');
const path = require('path');
const constants = {
testData: {
csvColumns: [
'ruby',
'python',
'vuejs',
'angular',
'react',
'nodejs',
],
},
};
const configFileLocation = (name) => {
return
{
filename: path.join(__dirname, `${name}technologies.csv`)
}
}
const getData = (name) =>
new Promise((resolve, reject) => {
const fileLocation = configFileLocation(name).filename;
const csvParser = parse({
delimiter: ',',
});
if (!fs.existsSync(fileLocation)) {
reject(new Error(`File ${fileLocation} is missing.`));
}
const csvFileStream = fs.createReadStream(fileLocation);
csvFileStream.on('ready', () => {
csvFileStream.pipe(csvParser);
});
csvFileStream.on('error', (error) => {
reject(
new Error({
error,
message: 'csvParseCards#csvFileStream on error',
})
);
});
csvParser.on('error', (error) => {
reject(
new Error({
error,
message: 'csvParseCards#csvParser on error',
})
);
});
const cards = [];
csvParser.on('readable', () => {
let record = '';
while ((record = csvParser.read())) {
const card = {};
const columns = constants.testData.csvColumns;
if (record.length !== columns.length) {
console.warn('Column mismatch', record);
}
record.map((value, index) => {
card[columns[index]] = value;
});
cards.push(card);
}
});
csvParser.on('end', () => {
cards.shift();
resolve(cards);
});
});
module.exports = getData;