如何在node.js中执行此curl操作

XMe*_*Men 15 javascript asynchronous node.js

我想做的是这个卷曲操作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 -
Run Code Online (Sandbox Code Playgroud)

建议表示赞赏.

mrr*_*ton 16

通过这里http://query7.com/nodejs-curl-tutorial

虽然cURL没有特定的NodeJS绑定,但我们仍然可以通过命令行界面发出cURL请求.NodeJS带有child_process模块​​,它可以让我们轻松启动进程并读取它们的输出.这样做非常简单.我们只需要从child_process模块​​导入exec方法并调用它.第一个参数是我们要执行的命令,第二个参数是一个接受错误,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);
}

});
Run Code Online (Sandbox Code Playgroud)

编辑这也是一个可能的解决方案:https://github.com/dhruvbird/http-sync

  • 这只是另一种选择.他要求卷曲,所以我给他卷曲:) (3认同)
  • CURL有比http.request更多的选项(包括代理支持) (3认同)

Ray*_*nos 11

使用请求.request是从node.js发出HTTP请求的事实上的标准方法.这是一个很薄的抽象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" }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)