Мой вариант использования такой, когда мне нужно создать каталог файлов и вернуть его в виде zip-файла для пользователя.Узел: res.download загружает пустую папку zipped
Мой код выглядит следующим образом:
var output = fs.createWriteStream('target.zip');
archive.pipe(output);
archive.append('details.json', { name: 'details.json'});
archive.finalize();
//Specifiy the .zip folder & Download
filename = 'target.zip';
res.download(filename);
Это дает мне пустую папку в месте загрузки моего браузера.
target.zip
, однако, содержит данные.
Я понимаю, что это происходит потому, что Node не ждет append()
, чтобы добавить файлы в архив. Я попытался поместить код для загрузки в функцию обратного вызова append.finalize()
, но он не работает.
Где я могу поставить код загрузки так, чтобы это произошло после успешного добавления?
Пример https://github.com/archiverjs/node-archiver/blob/master/examples/pack-zip.js – Molda
@Molda Пример не распространяется на загрузку клиенту - где я столкнулся с проблемой , – Ketcomp
OK, но он охватывает, как видеть, когда файл был создан с помощью output.on ('close' – Molda