Nodejs pipe требуется в другой поток, вручную добавляя в него данные после разбора. чистый nodejs - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть функция для чтения запроса, затем для анализа некоторых сжатых данных с шифрованием и записи в файл.

Проблема здесь в том, что когда я пытаюсь читать из readsteam (файл), он работает нормально, когда я пытаюсь добавьте данные в req.body и попробуйте так, что это не работает. просто ничего не шифрует.

Может кто-нибудь объяснить правильный способ сделать это. это должно быть сделано в чистом виде Node.js без каких-либо библиотек.

let writeStream = fs.createWriteStream(
    `something.gz`
  );
  let gzipStream = zlib.createGzip();
  const iv = crypto.randomBytes(16);
  const secret = req.headers["secret"];
  const cipher = crypto.createCipheriv(
    config.algorithmToEncrypt,
    secret,
    iv
  );
  const rStream = fs.createReadStream('./uploadFolder/something.txt');

  try {
    req.body = newData; // new data is some string here
    req
        .pipe(cipher)
        .on('error', (err) => console.log)
        .pipe(gzipStream)
        .on('error', (err) => console.log)
        .pipe(writeStream)
        .on('error', (err) => console.log);

    return console.log('success');
  } catch (err) {
    console.log(err);
    return console.error(err);
  }
...