gpt4 book ai didi

node.js - 在管道传输时使用迈克尔的请求,如何监听事件以使用进度条显示进度

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:25 29 4
gpt4 key购买 nike

我正在使用 mikeal 的请求来编写一个模块来上传和下载文件当管道某些东西时,如何监听事件以用进度条显示进度请给我看一些例子谢谢...

最佳答案

我快速搜索了 NPM 注册表,发现 progress ,一个在命令行中显示进度条的模块。它看起来不错,甚至还有一个示例展示如何使用它来显示下载进度。我在这里复制它:

var ProgressBar = require('progress')
, https = require('https');

var req = https.request({
host: 'download.github.com'
, port: 443
, path: '/visionmedia-node-jscoverage-0d4608a.zip'
});

req.on('response', function(res){
var len = parseInt(res.headers['content-length'], 10);

console.log();
var bar = new ProgressBar(' downloading [:bar] :percent :etas', {
complete: '='
, incomplete: ' '
, width: 20
, total: len
});

res.on('data', function(chunk){
bar.tick(chunk.length);
});

res.on('end', function(){
console.log('\n');
});
});

req.end();

上面的代码将生成一个如下所示的进度条:

downloading [=====             ] 29% 3.7s​

请注意他如何检查 content-length header 以获取正在下载的文件的长度,并使用它来计算完成百分比。然后将每个 block 的长度传递给进度条。

关于node.js - 在管道传输时使用迈克尔的请求,如何监听事件以使用进度条显示进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234018/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com