Не удается прочитать канал свойств undefined в парсере csv
Я пытаюсь загрузить большой CSV-файл размером 10 МБ с помощью парсера csv и формировать данные в node js при отправке запроса на api с помощью axios. Мой код следующий:
//insert new data
else if (`${flags.newdata}` !== "undefined" && `${flags.source}` !== "undefined" ){
var csv=require('csv-parser');
var FormData=require('form-data');
const form_data = new FormData();
var data = [];
form_data.append("file", fs.createReadStream(`${flags.source}`)).pipe(csv()).on('data',function(row){ data.push(row) }).on('end',function(){console.log('Data Loaded')});
/*const request_config = {
headers: {
"Authorization": token,
"Content-Type": "multipart/form-data"
},
data: form_data
};*/
return axios.post('https://localhost:8765/energy/api/Admin/' + `${flags.newdata}`, form_data);
}
Я получаю следующую ошибку:
TypeError: Cannot read property 'pipe' of undefined
Я читал похожие вопросы, но ни один из них не помог. Как я могу это решить?
1 ответ
Похоже, вы хотите передать не поток, а результат append(), а добавить return undefined. Используйте трубку вот так:
var readStream = fs.createReadStream(`${flags.source}`);
readStream.on('open', function () {
readStream.pipe(csv());
});
readStream
.on('data',function(row){ data.push(row) })
.on('end',function(){console.log('Data Loaded')});