Adam Rensel b05888e79d Add the correct demo app 9 years ago
..
node_modules b05888e79d Add the correct demo app 9 years ago
test 0ad841a423 init commit 9 years ago
.editorconfig 0ad841a423 init commit 9 years ago
.jshintrc 0ad841a423 init commit 9 years ago
.npmignore 0ad841a423 init commit 9 years ago
.travis.yml 0ad841a423 init commit 9 years ago
LICENSE 0ad841a423 init commit 9 years ago
README.md 0ad841a423 init commit 9 years ago
index.js 0ad841a423 init commit 9 years ago
package.json b05888e79d Add the correct demo app 9 years ago

README.md

request-progress Build Status

Tracks the download progress of a request made with request.

Installation

$ npm install request-progress

Usage

var fs = require('fs');
var request = require('request');
var progress = require('request-progress');

// Note that the options argument is optional
progress(request('http://google.com/doodle.png'), {
    throttle: 2000,  // Throttle the progress event to 2000ms, defaults to 1000ms
    delay: 1000      // Only start to emit after 1000ms delay, defaults to 0ms
})
.on('progress', function (state) {
    console.log('received size in bytes', state.received);
    // The properties bellow can be null if response does not contain
    // the content-length header
    console.log('total size in bytes', state.total);
    console.log('percent', state.percent);
})
.on('error', function (err) {
    // Do something with err
})
.pipe(fs.createWriteStream('doodle.png'))
.on('error', function (err) {
    // Do something with err
})
.on('close', function (err) {
    // Saved to doogle.png!
})

Note that the state object emitted in the progress event is reused to avoid creating a new object for each event.

License

Released under the MIT License.