cojs / cogent

Simpler HTTP requests using co
MIT License
33 stars 7 forks source link

cogent

NPM version build status Test coverage Gittip

A simple HTTP request agent designed primarily for GETing stuff.

Features

API

var request = require('cogent')

var uri = 'https://raw.github.com/visionmedia/express/master/package.json'

// Pipe stdout
var res = yield* request(uri)
res.pipe(process.stdout)

// Save to a file
var res = yield* request(uri, require('os').tmpdir() + '/express.package.json')
if (res.destination) console.log('ok')

// Get as JSON
var res = yield* request(uri, true)
var json = res.body

You can also use it without generators by wrapping it with co:

var co = require('co')
var request = co(require('cogent'))

request('https://github.com', function (err, res) {
  res.pipe(process.stdout)
})

var response = yield* request(url, [options])

url is the URL of the request. The options are passed to http.request(). Additional options are:

If options === true, it defaults to { json: true }. If typeof options === 'string', it defaults to { destination: string }.

response will have the following properties:

request = request.extend(options)

Create a new cogent instance with default options. This allows you to avoid setting the same options every time. See the options listed above.

var request = require('cogent').extend({
  auth: 'username:password'
})

var res = yield* request('http://localhost/', true)
// will send with auth header