繁体   English   中英

在node.js child_process.exec上显示进度?

[英]Show progress on node.js child_process.exec?

我最近询问/接受了我之前的一个问题的答案: 我如何使用nodejs复制wget的功能

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

谢谢!

是的你可以。 使用child_process.spawn child_process.exec执行命令并缓冲输出时, spawn会为您提供有关dataerrorend事件。 所以你可以听取并计算你的进度。 spawn节点文档中有一个基本示例。

更新:我看到了你的另一个问题。 您可以使用wget ,但我建议使用nodejs模块请求 以下是如何使用请求获取文件:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM