How do I make a Http request with node.js that is equivalent to this code:
curl -X PUT http://localhost:3000/users/1
How do I make a Http request with node.js that is equivalent to this code:
curl -X PUT http://localhost:3000/users/1
Use the http client.
Something along these lines:
var http = require('http');
var client = http.createClient(3000, 'localhost');
var request = client.request('PUT', '/users/1');
request.write("stuff");
request.end();
request.on("response", function (response) {
// handle the response
});
For others googling this question, the accepted answer is no longer correct and has been deprecated.
The correct method (as of this writing) is to use the http.request method as described here: nodejitsu example
Code example (from the above article, modified to answer the question):
var http = require('http');
var options = {
host: 'localhost',
path: '/users/1',
port: 3000,
method: 'PUT'
};
callback = function(response) {
var str = '';
//another chunk of data has been recieved, so append it to `str`
response.on('data', function (chunk) {
str += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function () {
console.log(str);
});
}
http.request(options, callback).end();
var http = require('http');
var client = http.createClient(1337, 'localhost');
var request = client.request('PUT', '/users/1');
request.write("stuff");
request.end();
request.on("response", function (response) {
response.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});