Я хотел бы создать архив с архиватором и поместить в него некоторые файлы. Клиентская сторона, пользователь нажимает на кнопку, и она будет генерировать архив (сторона сервера).Создайте архив и добавьте в него файлы перед отправкой клиенту
Я использую Express.js, это мой код на стороне сервера, где будет создан архив. Я сделал что-то вроде этого:
app.get('/export/siteoccupancy', function(req,res){
if(_.isEmpty(req.query)){
res.status(404).send('requires a start and end date');
}else{
//getting paramas
var sDate = req.query.startDate;
var eDate = req.query.endDate;
}
var fs = require('fs');
var archiver = require('archiver');
var archive = archiver('zip');
archive.on('err',function(err){
res.status(500).send({error : err.message});
});
res.on('close',function(){
console.log('Archive size : %d b',archive.pointer());
return res.status(200).send('OK').end();
});
res.attachment('data-export.zip');
archive.pipe(res);
var stream = fs.createWriteStream("data-report.txt')");
stream.once('open',function(fd) {
stream.write('test1');
stream.write('\n test2');
stream.write('\n test3');
stream.end();
});
archive.append(stream);
archive.finalize();
});
Это совершенно новое для меня, и я хотел бы понять, почему консоль говорит мне файл поток пуст?
Ошибка добавления: имя записи должно быть не пустое значение строки в Archiver.append
С уважением
Смотрите эту [пост] (http://codewinds.com/blog/2013-08-19-nodejs-writable-streams.html) я не думаю, что вам нужно 'раз (» open ', fn) ' –