Como parece que node-curl
está muerto, lo he bifurcado, renombrado y modificado para que sea más curl y compilar en Windows.
node-libcurl
Ejemplo de uso:
var Curl = require('node-libcurl').Curl;
var curl = new Curl();
curl.setOpt(Curl.option.URL, 'www.google.com');
curl.setOpt('FOLLOWLOCATION', true);
curl.on('end', function(statusCode, body, headers) {
console.info(statusCode);
console.info('---');
console.info(body.length);
console.info('---');
console.info(headers);
console.info('---');
console.info(this.getInfo(Curl.info.TOTAL_TIME));
this.close();
});
curl.on('error', function(err, curlErrorCode) {
console.error(err.message);
console.error('---');
console.error(curlErrorCode);
this.close();
});
curl.perform();
realizan es asíncrono,
y no hay manera de usarlo sincrónica actualmente (y probablemente nunca tendrá).
Todavía está en alfa, pero esto va a cambiar pronto, y se agradece la ayuda.
Ahora es posible utilizar Easy
mango directamente para solicitudes de sincronización, ejemplo:
var Easy = require('node-libcurl').Easy,
Curl = require('node-libcurl').Curl,
url = process.argv[2] || 'http://www.google.com',
ret, ch;
ch = new Easy();
ch.setOpt(Curl.option.URL, url);
ch.setOpt(Curl.option.HEADERFUNCTION, function(buf, size, nmemb) {
console.log(buf);
return size * nmemb;
});
ch.setOpt(Curl.option.WRITEFUNCTION, function(buf, size, nmemb) {
console.log(arguments);
return size * nmemb;
});
// this call is sync!
ret = ch.perform();
ch.close();
console.log(ret, ret == Curl.code.CURLE_OK, Easy.strError(ret));
Además, el proyecto es estable ahora!
'http.request' ... – Raynos