}, function(err, entry) { if (err) res.send('error'); archive.finish(); archive.pipe(res); });
}), function(err) { if(err) { torrent.zipping = false; torrents.emit("update"); return console.error("zip archive error:", err); } archive.finish(); });
function next() { if (files.length > 0) { var file = files.pop(); var fileStream = gridfs.createReadStream({ _id: file._id }); archive.entry(fileStream, { name: file.filename }, next); } else { archive.finish(); } }
var nextFile = function(){ if(!filePending.length) return; if(!filePending[0].length) { zipStream.finish(); return; } zipStream.entry(filePending[0][0], filePending[0][1], function(err){ filePending.shift(); if(err) zipStream.emit('error', err); else nextFile(); }); };
async.series(zipAdders, function (err) { if (err) return cb(err) zip.finish() })