Я выполняю различные операции с файлом на диске, например, расшифровку и разархивирование.Я хочу отправить этот поток как ответ в моем главном модуле.
server.js
app.get('/route', function(req, res) {
let req_params = req.query;
cryptProvider.decrypt({file: req_params.file, key: req_params.key}).pipe(res);
})
cryptProvider.js
exports.decrypt = function ({ file, key }) {
const readInitVect = fs.createReadStream(file, { end: 15 });
let initVect;
readInitVect.on('data', chunk => {
initVect = chunk;
});
readInitVect.on('close', () => {
const cipherKey = crypto
.createHash('sha256')
.update(key)
.digest();
const readStream = fs.createReadStream(file, { start: 16 });
const decipher = crypto.createDecipheriv('aes256', cipherKey, initVect);
const unzip = zlib.createUnzip();
return readStream
.pipe(decipher)
.pipe(unzip);
})
};
Итак, я пытаюсь передать readStream
из моего cryptProvider в server.js.Возвращение readStream
и передача его в res
, похоже, не работает, так как cryptProvider.decrypt не поддерживает дальнейшую передачу.
Я был бы рад, если бы кто-нибудь мог помочь мне выяснить, в чем здесь проблема.