2011-09-21 25 views
12

我想要做的是在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 - 

建議表示讚賞。

回答

9

使用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" } 
    } 
    } 
}); 
12

通過這裏http://query7.com/nodejs-curl-tutorial

雖然沒有對具體的捲曲綁定的NodeJS,我們仍然可以通過發出命令行界面捲曲的請求。 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

+0

爲什麼在命令行中使用捲曲時,你可以用'http.request'或Node.js的直接 – Raynos

+3

這只是另一種選擇。他要求捲曲,所以我給他捲曲:) – mrryanjohnston

+3

CURL有比http.request更多的選擇(包括代理支持) –