节点使用回调或事件提取zip文件异步?

时间:2016-11-14 17:36:55

标签: node.js events asynchronous callback eventemitter

我必须编写一个模块,其任务是提取一个包含两个参数zip file's pathdirectory where to extract's path)的zip文件,该模块应公开方法来执行任务,然后在操作成功时触发另一个任务

我主要担心的是:我应该使用回调设计模式还是可观察的事件发射器

基本上,我想知道我是否应该展示一个扩展事件的对象'可以通过extraction-complete事件观察到的模块或者如果我成功的话我应该使用callback(err, 'ok')

这两种模式之间的巧妙方法是什么?

我的目标是解压缩文件,然后浏览提取的存档的内容,并从解压缩的文件夹中将一些信息写入数据库。该文件夹是一个zip文件,由包含图像的文件夹组成,并且有大约600个条目

1 个答案:

答案 0 :(得分:0)

您可以使用此命令首先安装解压缩:

npm install unzip

然后使用以下代码:

var unzip = require('unzip');

var stream = fs.createReadStream('/tmp/file.zip');
stream.pipe(unzip.Extract({ path: '/dest' })
    .on('close', function () {
        // Your callback code will go here...
    })
);