如何在node.js中进行curl操作

问题描述 投票:0回答:3

我想做的是

node.js
中的curl操作。

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 -

欢迎提出建议。

javascript node.js asynchronous
3个回答
25
投票

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

});

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


13
投票

使用请求。 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" }
    }
  }
});

© www.soinside.com 2019 - 2024. All rights reserved.