nodejs压缩

 在express中要用到压缩,把某一个文件夹压缩成zip,再返回到客户端提供下载.

用archiver库

var Archiver = require('archiver')

router.get('/report', function(req, res) {
    
      var archive = Archiver('zip')
      archive.on('error', function (err) {
        res.status(500).send({ error: err.message })
      })
      archive.on('end', function () {
        log.info('Archive wrote %d bytes', archive.pointer())
      })
      res.attachment('test.zip')
      archive.pipe(res)
      // 这里一定要加最后的'/'
      archive.directory('/var/test/'),  'tttttt')
      archive.finalize()

})

这样就很方便的把某一个目录直接打包成zip,而且不会阻塞客户端的操作

但是,有问题:

  在我电脑上试的时候,如果文件夹有10G大小,那么下载下来的zip档打不开。这是个问题,提交给这个库的开发者.

原文地址:https://www.cnblogs.com/cool-fire/p/7264010.html