Могу ли я получить буфер из fs.createWriteStream ()? - PullRequest
0 голосов
/ 11 октября 2019

У меня простой вопрос - Могу ли я получить буфер от fs.createWriteStream ()?

В моем случае я использую архиватор модуль NPM, который может создавать архивыиз буфера. Когда этот модуль завершит работу с методом archive.finalize () , я могу получить результат из archive.pipe (stream) . Я хочу иметь Буфер из fs.createWriteStream () , который я могу отправить res.send () Экспресс-метод.

let archive = archiver("zip", {
      zlib: { level: 9 } // Sets the compression level.
    });
const stream = fs.createWriteStream(
      "./src/backend/api/test.zip"
    );
archive.pipe(stream);
archive.append(buffer, { name: "test.csv" });
archive.finalize();

Спасибо за ответ! И извините за очень плохой английский.

1 Ответ

0 голосов
/ 11 октября 2019

Если я правильно понял вашу проблему, это может помочь вам

        const stream = fs.createWriteStream(
                "./src/backend/api/test.zip"
            );

        stream.on('data', (chunk) => {
            //here u get every chunk as a buffer  
        })
        stream.on('finish', () => {
            //here your code if the stream is ending
        })
...