【问题标题】:Progress tracker for POST requestPOST 请求的进度跟踪器
【发布时间】:2020-08-01 08:52:36
【问题描述】:

您好,我对 NodeJS 及其模块还很陌生,但我想知道是否可以得到一些帮助,我正在尝试为应用程序创建一个进度条,但它只在完成时返回 100%,我没有我也不认为我正在使用管道,但任何帮助将不胜感激!

如果有区别的话,我也会通过套接字传输数据。

const request = require('request');
const io = require('socket.io')(http)
const fs = require('fs');
var progress = require('progress-stream');

var str = progress({
    time: 1000
});

str.on('progress', function (progress) {
    console.log(Math.round(progress.percentage) + '%');
});


io.on('connection', (socket)=>{
socket.on('fileUploader',()=>{
    let formData = {
            preview_file: fs.createReadStream(filePath};
        request.post({
                url: 'http://httpbin.org/post',
                formData: formData
            }, 
                function optionalCallback(err, httpResponse, body) {
                if (err) {
                    return console.error('upload failed:', err);
                }
                console.log('Upload successful!  Server responded with:', body);
        }).pipe(str);
    })
})

【问题讨论】:

标签: javascript node.js ajax socket.io request


【解决方案1】:

尝试使用axios, 他们有 onUploadProgress 方法,你可以使用它的“progressEvent”回调来获取百分比。

来自 axios 的文档非常清楚 this

【讨论】:

  • 在 axios 中,他们通过输入文件标签获取文件,如果我已经有了文件路径,如何将其附加到 FormData?
  • 是的,您可以像这样将其附加到 FormData 中 stackoverflow.com/a/43014086/1446163
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多