Запрос Http с node?

Как сделать запрос Http с node.js, который эквивалентен этому коду:

curl -X PUT http://localhost:3000/users/1

Ответы

Ответ 1

Используйте http client.

Что-то в этом роде:

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
});

Ответ 2

Для других пользователей, задающих этот вопрос, принятый ответ больше не является правильным и устарел.

Правильный метод (с момента написания) заключается в использовании метода http.request, как описано здесь: пример nodejitsu

Пример кода (из приведенной выше статьи, измененной для ответа на вопрос):

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();

Ответ 3

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);
 });
});