私はNodeJSの初心者です。pipe() メソッドを使用してクライアントにデータをストリーミングできることはわかっています。
ここにコードのスニペットがあります
router.get('/archive/*', function (req, res) {
var decodedURI = decodeURI(req.url);
var dirarr = decodedURI.split('/');
var dirpath = path.join(dir, dirarr.slice(2).join("/"));
console.log("dirpath: " + dirpath);
var archive = archiver('zip', {
zlib: {level: 9} // Sets the compression level.
});
archive.directory(dirpath, 'new-subdir');
archive.on('error', function (err) {
throw err;
});
archive.pipe(res)
archive.on('finish', function () {
console.log("finished zipping");
});
archive.finalize();
});
get リクエストを使用すると、圧縮されたファイルがダウンロードされましたが 、拡張子はありません。書き込みストリームを応答にパイプしているので、それはわかっています。とにかく .zip 拡張子でパイプしますか? または、zipファイルをHDDにビルドせずにzipファイルを送信するにはどうすればよいですか?