1.0.0 • Published 10 years ago

prequest v1.0.0

Weekly downloads
856
License
MIT
Repository
github
Last release
10 years ago

prequest

Build Status

Promisified HTTP requests with bluebird and request modules.

Grab it

$ npm install prequest

prequest usage

GET example

With this wrapper, we can easily make requests and catch any http failures in a promise's catch. By default, method is GET:

var prequest = require('prequest');

prequest('http://localhost:4567/api').then(function (body) {
  console.log('Success!');
}).catch(function (err) { // Any HTTP status >= 400 falls here
  console.error('Failed.', err.statusCode, ' >= 400');
});

If you need the full response (e.g. to view headers), specify arrayResponse: true to have the response and body in an array. You may use bluebird's spread to access the items directly:

prequest({
  url:'http://localhost:4567/api',
  arrayResponse: true
}).spread(response, body) {
  console.log('Success!', response.headers, body);
});

POST example

All options supported by request can be supplied to prequest. By default, json: true is enabled to set body payload as a JSON representation. If you do not want this, simply override it to false.

var prequest = require('prequest');

prequest({
  method: 'POST',
  url:'http://localhost:4567/api',
  body: {
    someData: [1, 2, 3]
  }
}).then(body) {
  console.log('Success!',  body);
}).catch(function (err) { // Any HTTP status >= 400 falls here
  console.error('Failed.', err.statusCode, ' >= 400');
});

To use the other methods: delete, patch, head, specify it in method.

Testing

To run the tests:

$ npm install
$ npm test

The past, without prequest

Without this wrapper, a common pattern to promisify requests:

var Promise = require('bluebird');
var prequest = Promise.promisify(require('request'));

prequest(url).then(function (response) {
  if (reponse.statusCode === 200) {
    // continue;
  } else if (reponse.statusCode >= 500) {
    // handle this error case
  } else if (reponse.statusCode >= 400) {
    // you get the point...
  }
}).catch(function (err) {
  console.error(err);
  // network issue
})

Contribute

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT