Request – A Node.js Module You Should Know About

Last updated 5 weeks ago

node logoHey everyone! This is the fourth post in my new node.js modules you should know about article series.

The first post was about dnode - the freestyle rpc library for node, the second was about optimist - the lightweight options parser for node, the third was about lazy - lazy lists for node.

This time I'll introduce you to a very awesome module called request by Mikeal Rogers. Request is the swiss army knife of HTTP streaming.

Check this out:

var fs = require('fs')
var request = require('request');
request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

Pow! You just streamed the response of HTTP request to http://google.com/doodle.png into doodle.png local file!

Here is more awesome stuff:

var fs = require('fs')
var request = require('request');
fs.readStream('file.json').pipe(request.put('http://mysite.com/obj.json'))

Pow! It streamed your local file file.json to http://mysite.com/obj.json as HTTP PUT request!

var request = require('request');
request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png'))

Pow! This just streamed a HTTP GET from http://google.com/img.png to HTTP PUT to http://mysite.com/img.png.

At Browserling we use this module for streaming data to and from couchdb. Here is an example that saves a JSON document at mikeal's test couchdb:

var request = require('request')
var rand = Math.floor(Math.random()*100000000).toString()
request({
 method: 'PUT',
 uri: 'http://mikeal.iriscouch.com/testjs/' + rand,
 multipart: [
 {
 'content-type': 'application/json',
 'body': JSON.stringify({
 foo: 'bar',
 _attachments: {
 'message.txt': {
 follows: true,
 length: 18,
 'content_type': 'text/plain'
 }
 }
 })
 },
 { body: 'I am an attachment' }
 ] 
}, function (error, response, body) {
 if(response.statusCode == 201){
 console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand);
 } else {
 console.log('error: '+ response.statusCode);
 console.log(body);
 }
})

Install it via npm, as always:

npm install request

See ya!

Read more articles →
Thanks for reading my post. If you enjoyed it and would like to receive my posts automatically, you can subscribe to new posts via rss feed or email.
Lazy – A Node.js Module You Should Know About
Hashish – A Node.js Module You Should Know About

AltStyle によって変換されたページ (->オリジナル) /