Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wikimedia/preq

Yet another promising node-request wrapper
https://github.com/wikimedia/preq

javascript nodejs preq promise request wrapper

Last synced: about 1 month ago
JSON representation

Yet another promising node-request wrapper

Awesome Lists containing this project

README

        

# preq [![Build Status](https://travis-ci.org/wikimedia/preq.svg?branch=master)](https://travis-ci.org/wikimedia/preq)

Yet another promising [request](https://github.com/request/request) wrapper.

## Features
- ES6 `Promise`-based, using the excellent
[bluebird](https://github.com/petkaantonov/bluebird/blob/master/API.md) by
default
- Robustness: retry, timeout and connect timeout support
- Proper error handling: All errors (incl. HTTP responses with code >= 400)
throw exceptions, and can be caught with `Promise.catch()`. This ensures
that all errors are handled, and often cleans up the code by clearly
separating out error handling. The `HTTPError` instance has all the
properties of a normal response.

## Installation
```
npm install preq
```

## Usage
```javascript
var preq = require('preq');

return preq.get({ // or preq.request({ method: 'get', .. })
uri: 'http://google.com/',
headers: {
'x-foo': 'bar'
},
query: {
q: 'foo'
},
// body for POSTs or PUTs, can be object (serialized to JSON), Buffer or String
})
.then(function(res) {
/**
* {
* status: 200,
* headers: {
* date: 'Sat, 21 Feb 2015 01:47:40 GMT' // , ...
* },
* body: '...