2011-09-21 89 views
12

Lo que me gustaría hacer es esta operación curl en node.js.cómo hacer esta operación curl en 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 - 

Las sugerencias son apreciadas.

Respuesta

9

Uso request. request es la forma estándar de facto de realizar solicitudes HTTP desde node.js. Es una abstracción delgada en la parte superior de 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

través aquí http://query7.com/nodejs-curl-tutorial

Aunque no existen fijaciones nodejs específicos para el enrollamiento, todavía puede emitir solicitudes de cURL a través de la interfaz de línea de comandos. NodeJS viene con el módulo child_process que nos permite iniciar fácilmente los procesos y leer sus resultados. Hacerlo es bastante sencillo. Solo tenemos que importar el método exec del módulo child_process y llamarlo. El primer parámetro es el comando que queremos ejecutar y el segundo es una función de devolución de llamada que acepta error, 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); 
} 

}); 

EDITAR Esto también es una solución posible: https://github.com/dhruvbird/http-sync

+0

¿Por qué utilizar rizo desde la línea de comandos cuando se puede usar 'http.request' o Node.JS directamente – Raynos

+3

Es sólo otra opción. Pidió curl, así que le di curl :) – mrryanjohnston

+3

CURL tiene muchas más opciones que http.request (incluida la compatibilidad con proxy) –

Cuestiones relacionadas