Nodejs解压缩zip的同步
我目前使用adm-zip
将zip文件提取到某个path,但其extractAllTo
方法是同步的。
有没有办法,我可以提取压缩文件asynchronous?
尝试在npm上使用async-unzip库: https ://www.npmjs.com/package/async-unzip
这在内存中运行,并且是100%asynchronous的,这会让你得到你想要的行为=)
这是一个例子:
var async = require('async'), path = require('path'), ZipFile = require('async-unzip').ZipFile, zipFile = new ZipFile('/home/user/Name.app.dSYM.zip'), noMoreFiles = false; async.whilst(function () { return !noMoreFiles; }, function (cb) { async.waterfall([ function (cb) { zipFile.getNextEntry(cb); }, function (entry, cb) { if (entry) { if (entry.isFile) { var match = entry.filename.match(/^[^\/]+\.dSYM\/Contents\/Resources\/DWARF\/(.+)/); if (match) { console.log(match); console.log(entry); async.waterfall([ function (cb) { entry.getData(cb); }, function (data, cb) { // `data` is a binary data of the entry. console.log(data.length); cb(); } ], cb); } } } else { noMoreFiles = true; } cb(); } ], cb); }, function () { // DO NOT FORGET to call `close()` to release the open file descriptor, // otherwise, you will quickly run out of file descriptors. zipFile.close(); console.log(arguments); });
- 即使在node.js应用程序中使用body-parser,req.body仍然在POST中为空(使用CORS和HTTPS)
- 我应该考虑在应用程序引导过程中阻止I / O的不良做法吗? (的node.js)