POST请求的进度跟踪器

时间:2020-07-31 21:56:12

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

你好,我对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);
    })
})

1 个答案:

答案 0 :(得分:1)

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

axios上的文档非常清楚this