Я хочу зашифровать данные, прочитанные из файла, который отправляется с помощью cipheriv, а затем сжимать с помощью gzipstrem и записывать в поток файлов. но когда я пытаюсь это сделать, я получаю сообщение об ошибке
stream.on is not a function
at destroyer (internal/streams/pipeline.js:27:10)
at internal/streams/pipeline.js:79:12
at Array.map (<anonymous>)
at pipeline (internal/streams/pipeline.js:76:28)
at Promise (internal/util.js:274:30)
at new Promise (<anonymous>)
at pipeline (internal/util.js:273:12)
on line of pipeLinePromisified.
Может кто-нибудь объяснить, что здесь не так? *
const fs = require("fs");
const util = require("util");
const { pipeline } = require("stream");
const writeStreamPromisified = util.promisify(fs.createWriteStream);
function someFunction(req) {
//extract bnary data req.on('data')
req.on('end', async () => {
let fileName = 'something.gz';
//define streams and cipher with the secret key
const iv = crypto.randomBytes(16);
const secret = req.headers["secret"];
const cipher = crypto.createCipheriv(
config.algorithmToEncrypt,
secret,
iv
);
const compressStream = zlib.createGzip();
let writeStream = fs.createWriteStream(
`${config.uploadFolder}/${fileName}.gz`
);
try {
//trying to pipe result which is binary data to cipher to be encrypted
// then compres it using gzipstream and finally write in writestream
req.body = result; // result is binary data
await pipeLinePromisified(
req,
cipher,
compressStream,
writeStream
);
return resolve({
code: 201,
payload: {
message: "Success!",
fileName: `${fileName}.gz`,
filePath: `somePath`
}
});
} catch (err) {
console.log(err);
return reject({
code: 400,
payload: {
error: `Error`
}
});
}
})
}