Чтение из csv, преобразование данных, запись файлов в zip-файл с узлом, но процесс не работает - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь прочитать из CSV, преобразовать каждую строку в новый файл, и все эти файлы помещаются в ZIP-файл.

const csv = require('csv-parser');
const archiver = require('archiver');
const fs = require('fs');
cosnt transformTheRow = require('./transformTheRow'); // it takes a row/object and returns a string

let output = fs.createWriteStream('out.zip');
let archive = archiver('zip');

fs.createReadStream('my-big.csv')
 .pipe(csv())
 .on('data', (data) => {
   const { name, prefix } = data
   let big-ishString = transformTheRow(data);
   let otherBig-ishString = transformTheRow(data, "it's different');
   archive.append(big-ishString, {name, prefix });
   archive.append(otherBig-ishString, {name: `${name}_different`, prefix: `${prefix}_different` });
 })
 .on('end', () => {
   archive.finalize();
   console.log('Yay');
 });

Я продолжаю убивать процесс. Я предполагаю, что попытка добавить в архив в .on('data',...) не может идти в ногу с .pipe(csv()).

Что еще я пробовал / смотрел:
* Я пытался установить oomadjдо -17;Я не уверен, правильно ли я это сделал. В любом случае, это не сработало.
* Они знают, сколько раз они добавляли в архив: ( Динамически создавайте и передавайте zip-данные клиенту )
* Передача в архив:

archive.on('data', doStuffToAppendDataToArchive)//same as .on('data') from above
fs.createReadStream('my-big.csv')
 .pipe(csv())
 .pipe(archive)

Бонусные баллы, если вы можете помочь мне транслировать этот архив непосредственно на S3 или записать его на диск. Я видел , как передать архив (zip) в корзину S3 , но я не полностью следовал этому.

Спасибо.

...