我必须编写一个模块,其任务是提取一个包含两个参数(zip file's path
,directory where to extract's path
)的zip文件,该模块应公开方法来执行任务,然后在操作成功时触发另一个任务。
我主要担心的是:我应该使用回调设计模式还是可观察的事件发射器?
基本上,我想知道我是否应该展示一个扩展事件的对象'可以通过extraction-complete
事件观察到的模块或者如果我成功的话我应该使用callback(err, 'ok')
。
这两种模式之间的巧妙方法是什么?
我的目标是解压缩文件,然后浏览提取的存档的内容,并从解压缩的文件夹中将一些信息写入数据库。该文件夹是一个zip文件,由包含图像的文件夹组成,并且有大约600个条目
答案 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...
})
);