как сделать эту операцию curl в node.js - PullRequest
14 голосов
/ 21 сентября 2011

Что я хотел бы сделать, это операция скручивания в node.js.

curl -XPOST localhost:12060/repository/schema/fieldType -H 'Content-Type: application/json' -d '
{
  action: "create",
  fieldType: {
    name: "n$name",
    valueType: { primitive: "STRING" },
    scope: "versioned",
    namespaces: { "my.demo": "n" }
  }
}' -D -

Предложения приветствуются.

Ответы [ 3 ]

15 голосов
/ 21 сентября 2011

через здесь http://query7.com/nodejs-curl-tutorial

Хотя нет конкретных привязок NodeJS для cURL, мы все равно можем выдавать запросы cURL через интерфейс командной строки.NodeJS поставляется с модулем child_process, который позволяет нам легко запускать процессы и читать их вывод.Это довольно просто.Нам просто нужно импортировать метод exec из модуля child_process и вызвать его.Первый параметр - это команда, которую мы хотим выполнить, а второй - функция обратного вызова, которая принимает ошибку, stdout, stderr.

var util = require('util');
var exec = require('child_process').exec;

var command = 'curl -sL -w "%{http_code} %{time_total}\\n" "http://query7.com" -o /dev/null'

child = exec(command, function(error, stdout, stderr){

console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);

if(error !== null)
{
    console.log('exec error: ' + error);
}

});

EDIT Это также возможное решение: https://github.com/dhruvbird/http-sync

10 голосов
/ 21 сентября 2011

Использовать запрос . запрос де-факто является стандартным способом выполнения HTTP-запросов от node.js. Это тонкая абстракция поверх http.request

request({
  uri: "localhost:12060/repository/schema/fieldType",
  method: "POST",
  json: {
    action: "create",
    fieldType: {
      name: "n$name",
      valueType: { primitive: "STRING" },
      scope: "versioned",
      namespaces: { "my.demo": "n" }
    }
  }
});
3 голосов
/ 04 мая 2012

взгляните на https://github.com/chriso/curlrequest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...