node.js - Node 使用回调或事件异步提取 zip 文件?

标签 node.js events asynchronous callback eventemitter

我必须编写一个模块,其任务是提取给定两个参数的zip文件(zip文件的路径提取路径的目录),该模块应该公开执行任务的方法,然后在操作成功时触发另一个任务

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

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

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

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

最佳答案

您可以使用此命令先安装unzip:

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...
    })
);

关于node.js - Node 使用回调或事件异步提取 zip 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40594638/

相关文章:

javascript - 为什么我的 Angular 8 应用程序没有使用 Electron Packager 正确打包我的应用程序?

node.js - node.js 中的多人游戏架构 - 状态管理和与 Redux 的同步

javascript - 如何在 Javascript 的正确上下文中的鼠标包装器中使用关键字 this?

c# - 如何在Unity3D中使用C#事件

java - 为什么我的程序不处理鼠标运动? ( java )

c# - 当我必须使用 await 时,为什么要使用 async?

javascript - javascript 中的 await 关键字会降低应用程序的速度吗?

javascript - NodeJS 提交时无响应

javascript - 在导出之前加载异步配置

javascript - if 语句中的正则表达式验证