显示 node.js child_process.exec 的进度?

2023-12-21

我最近提出/接受了我之前提出的问题的答案:如何使用 Node.js 复制 wget 的功能 https://stackoverflow.com/questions/9541177/how-can-i-replicate-the-functionality-of-a-wget-with-node-js/9541250#9541250.

现在,我的脚本运行良好,但我希望能够向用户显示下载的百分比。我不确定这是否暴露给我们(我没有在文档中看到它),但我想无论如何我都会在这里问。希望得到一些帮助!

Thanks!


是的你可以。和child_process.spawn. While child_process.exec执行命令并缓冲输出,spawn为您提供事件data, error and end。所以你可以听一下并计算你的进度。有一个基本的例子生成的节点文档 http://nodejs.org/docs/latest/api/child_process.html#child_process_child_process_spawn_command_args_options.

Update:我看到了你的另一个问题。您可以使用wget为此,但我推荐使用nodejs模块request https://github.com/mikeal/request反而。以下是如何通过请求获取文件:

var request = require("request");

request(url, function(err, res, body) {
  // Do funky stuff with body
});

如果您想跟踪进度,您可以将回调传递给onResponse:

function trackProgress(err, res) {
  if(err)
    return console.error(err);

  var contentLength = parseInt(res.headers["content-length"], 10),
      received = 0, progress = 0;
  res.on("data", function(data) {
    received += data.length;
    progress = received / contentLength;
    // Do funky stuff with progress
  });
}

request({url: url, onResponse: trackProgress}, function(err, res, body) {
  // Do funky stuff with body
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

显示 node.js child_process.exec 的进度? 的相关文章

随机推荐

  • 通过标签继承选择最佳可用功能

    假设用户定义了以下函数的一些子集 void f int void g int void h int 你的任务是写一个函数call best int 它调用上面声明的列表中的第一个函数 然后您可以假设它也已定义 你是怎样做的 首先 我们定义一
  • 使用 VBA 选择动态单元格范围并创建图表

    我正在尝试使用 VBA 创建使用动态范围的图表 具体来说 我有一个Excel table如下 根据这些数据 我想创建一个图表 并根据要求更改日期范围 例如 在一种情况下 我需要制作 7 月 1 日至 7 月 6 日的图表 而在另一种情况下
  • WebDriver:添加新元素

    有没有一种方法可以在当前 DOM 中添加 插入元素 首先我要说的是 这是一个非常糟糕的主意 认真思考为什么要这样做 那么 如果你还想动态添加元素 那就再考虑一下吧 WebDriver 旨在模仿用户与页面的交互 用户通常不会随意添加元素 也就
  • flutter intellij 插件:java 语言支持吗?

    在我的设置中 Intellij Flutter 插件不支持 Java 代码 它将 Java 类视为文本文件 有什么方法可以让 Intellij 支持我使用 Android 特定的 Java 代码吗 类型检查 完成建议 导入 重构 这是我的颤
  • 使用 SELECT 结果集通过 MySQL 存储过程运行 UPDATE 查询

    我试图了解 MySQL 存储过程 我想检查用户登录凭据是否有效 如果有效 则更新用户在线状态 DROP PROCEDURE IF EXISTS checkUser DELIMITER CREATE PROCEDURE checkUser I
  • Haskell 中的稀疏数组?

    Haskell 中是否有任何标准或 最常用 的方法来表示多维稀疏数组 不会过多牺牲性能 例如 C 中的 map gt 我用谷歌搜索了一下 发现只有一些旧的学术论文 还有其他人也在问这个问题 Thanks Data Map Int Int M
  • 什么时候在构造函数和析构函数中调用 this-> 是安全的

    到目前为止我还没有找到一个确定的答案 什么时候打电话比较安全this gt 来自对象内部 特别是在构造函数和析构函数内部 而且 当使用公共继承时 在此调用的结果上使用向上和向下转换是否安全 例如 class foo foo a b this
  • BigQuery 嵌套字段:ARRAY 类型的列单元不能在 SELECT DISTINCT 中使用

    我想在 BigQuery 中选择表的唯一行 但收到 以下错误 ARRAY 类型的列单位不能在 SELECT DISTINCT 中使用 我的查询是 SELECT DISTINCT from table 表架构 mode NULLABLE na
  • C# 模拟 IHttpclient 和 CreateClient

    我有一个想要进行 x 单元测试的函数 但似乎我必须模拟 CreateClient 函数 每当我在测试期间调试它时 var client 似乎等于 null 我确信我正在正确注入依赖项 我想知道的是如何模拟 CreateClient 这是该函
  • 使用 Python 获取列的两个值之间的行

    假设有一个数据框如下 df Period 1996 Jan Feb March 1997 Jan Feb March 1998 Jan Feb March Some Values a b c d e f g h i 以及值之间的行1996
  • 在 XCode 中签名应用程序:在钥匙串中找不到指定的项目

    在 XCode 中存档应用程序 产品 gt 存档 时 出现以下错误 CodeSign Users xxx Library Developer Xcode DerivedData name xxx Build Intermediates Ar
  • Python - 使用正则表达式来过滤数据

    有没有一种简单的方法可以从给定字符串中删除与给定正则表达式匹配的所有字符 我知道在 Ruby 中我可以使用gsub gt gt key cd baz ls l gt cd baz ls l gt gt newkey key gsub w d
  • 错误:模块“app”:找不到平台“android-28”。在项目同步成功之前,设计编辑器不可用

    所以 我是新来的 刚刚安装了 Android Studio 然后想创建一个基本的 Activity 但问题是他们希望我安装 SDK 和 Haxm 而 Haxm 不是通过 SDK 管理器安装的 我已经尝试了很多 并使用了 Stack over
  • 修改 NSDate 以表示从今天起 1 个月

    我正在向我正在开发的 Cocoa 应用程序添加重复事件 我每天和每周都会重复 因为我可以用数学方式定义这些 3600 24 7 1 周 我使用以下代码来修改日期 NSDate dateWithTimeIntervalSinceNow 360
  • 如何为现有项目生成asgi.py?

    我在 2 2 中有一个现有的 django 项目 但现在我想开始使用通道 所以我必须更改为 3 0 和 asgi 而不是 wsgi 如何生成运行应用程序所需的 asgi py Django 有一个模板文件here https github
  • 在 Blazor 视图之外访问经过身份验证的用户

    在我的服务器端 Blazor 应用程序中 身份验证以非常规的方式处理 本质上 当用户访问该页面时 他们将使用其 Windows 凭据进行身份验证 此时 将创建一个自定义策略来在外部数据库 Informix 中查找该用户名 在该数据库中可以找
  • 如何在 Android 中滑动视图时禁用 onclick 侦听器?

    我有一个可以滑动到另一个页面的视图 它有一个 onClick 侦听器 用于显示一个对话框 问题是 滑动会触发这两个操作 即显示下一页和对话框 如何在滑动时禁用 onClick 侦听器 听起来你想使用 GestureDetector as w
  • DiffableDataSource:快照不会重新加载页眉和页脚

    我在用UICollectionViewDiffableDataSource for UICollectionView以多个部分显示内容 我正在使用 Collection View Compositional Layout 和 Diffabl
  • 如何通过堆栈跟踪访问本地变量? (模仿动态范围)

    背景 尽管可以在运行时编译 C 代码 但不可能在当前作用域中包含并运行生成的代码 相反 所有变量都必须作为显式参数传递 与 Python 这样的动态编程语言相比 我们永远无法真正复制eval 如本例所示 x 42 print eval x
  • 显示 node.js child_process.exec 的进度?

    我最近提出 接受了我之前提出的问题的答案 如何使用 Node js 复制 wget 的功能 https stackoverflow com questions 9541177 how can i replicate the function