JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 993
  • Score
    100M100P100Q110228F
  • License MIT

ES7 async/await ready http client

Package Exports

  • requisition
  • requisition/lib/request
  • requisition/lib/response

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (requisition) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

requisition

NPM version Build status Test coverage Dependency Status License Downloads

A light, fluent node.js HTTP client for ES6. Heavily inspired by superagent as well as fetch. Designed with ES7 async/await in mind.

The API is quite minimal for now. Features will be added while people request or use them.

var req = require('requisition');

// GET a JSON body
async function () {
  var res = await req('/users.json');
  var body = await res.json();
}

// POST an image file
async function () {
  var res = await req.post('/images.json').sendFile('image.png');
  var body = await res.json();
}

Differences

This is similar to other AJAX libraries like axios except:

  • Does not have browser support
  • Does not depend on gigantic options objects
  • Many utilities for handling HTTP responses like saving to a file

API

var request = require('requisition');

Request

request(url)

GET a url, return the response object.

request[VERB](url)

VERB a url, specifically when it's not GET.

request().then( response => )

Send the request and wait for the response.

request('/').then(function (response) {

})

request().set(headers)

Set an object of headers.

request().set(header, value)

Set a single header.

request().auth(name, pass)

Add basic authorization.

request().agent(agent)

Set http agent.

request().timeout(ms)

Set timeout.

request().redirects(num)

Set max redirect times.

request().ifModifiedSince(date)

Set header If-Modified-Since.

request().ifNoneMatch(value)

Set header If-None-Match.

request().type(type)

Set header Content-Type.

request().cookie(key, value, options)

Set cookie, uses cookie.serialize()

request('/cookie')
  .cookie(name, value, options)
  .then(function (response) {
    console.info(response.cookies);
  })

request().query(params)

Add query string.

request().send(data)

Add http body.

request().sendFile(filename)

Send file.

Response

response.status

The status code of the response.

response.headers

The header object of the response.

response.is(types...)

Infer the Content-Type of the response, similar to Koa or Express' method. See type-is.

response.get(header)

Get the value for a header.

response.charset

Get charset.

response.etag

Get header ETag.

response.lastModified

Get header Last-Modified.

response.cookies

Get cookies

request('/cookie').then(function (response) {
  console.info(response.cookies);
})

#### response.buffer().then( buffer => )

Return a single `Buffer` for the entire response.

#### response.text().then( text => )

Return a single `String` for the entire response.

#### response.json().then( body => )

Automatically parse the JSON of the response.

```js
request('/users.json').then(function (response) {
  assert(response.status === 200, 'Bad response!');
  assert(response.is('json'), 'Bad type!');
  return response.json()
}).then(function (body) {
  console.log(body);
})

response.saveTo([filename]).then( filename => )

Save the response to a file. If no filename is specified, saves to a random file in your temporary directory.

request('/file.txt').then(function (response) {
  return response.saveTo('/tmp/file.txt');
}).then(function () {
  console.log('file saved!');
})

response.dump()

Dumps the response. Execute this if you haven't handled the body.

response.destroy()

Destroy the response.