Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Node Libcurl | 562 | 131 | 136 | 3 months ago | 82 | January 29, 2022 | 32 | mit | TypeScript | |
libcurl bindings for Node.js | ||||||||||
Oauth2orizerecipes | 350 | 4 years ago | 8 | mit | JavaScript | |||||
OAuth2 security recipes and examples based on OAuth2orize | ||||||||||
Wipe Modules | 328 | 2 months ago | 6 | June 21, 2017 | 4 | mit | Shell | |||
🗑️ Easily remove the node_modules folder of non-active projects | ||||||||||
Sheetdown | 310 | 8 years ago | 8 | July 27, 2015 | 3 | other | JavaScript | |||
:page_with_curl: :arrow_down: Convert a Google Spreadsheet into a Table in Markdown | ||||||||||
Nestjs Api Boilerplate Jwt | 268 | 4 days ago | 11 | mit | TypeScript | |||||
An API Boilerplate to create a ready-to-use REST API in seconds with NestJS v9.x + TypeORM and JWT Auth 😻 | ||||||||||
Node Curl | 179 | 98 | 17 | 6 years ago | 16 | September 03, 2014 | 32 | mit | C++ | |
node curl wrapper with fully implemented | ||||||||||
Axios Curlirize | 155 | 12 | 18 | 4 months ago | 22 | October 22, 2021 | 7 | mit | JavaScript | |
axios plugin converting requests to cURL commands, saving and logging them. | ||||||||||
Microservices With Node Js And React | 120 | 3 months ago | 51 | TypeScript | ||||||
[Stephen Grider] Microservices with Node JS and React [ENG, 2020] | ||||||||||
Ringo | 111 | 10 years ago | 1 | bsd-3-clause | Erlang | |||||
Distributed key-value storage a'la Amazon Dynamo | ||||||||||
Typescript Express Sequelize | 109 | 3 years ago | 2 | other | TypeScript | |||||
Easily bootstrap your NodeJS project with Express, Sequelize and Typescript :+1: |
node cURL wrapper, support all options and infos.
quick start
curl = require('node-curl');
curl('www.google.com', function(err) {
console.info(this.status);
console.info('-----');
console.info(this.body);
console.info('-----');
console.info(this.info('SIZE_DOWNLOAD'));
});
with options
curl = require('node-curl')
curl('www.google.com', {VERBOSE: 1, RAW: 1}, function(err) {
console.info(this);
});
run the example/test.js
node examples/test.js
curl
curl(url, [options = {}], callback)
callback includes 1 parameters (error)
result is stored in curl
Retrieve Data from curl
members:
status - Http Response code
body - Http body
header - Http header
url - the url set by curl(...)
options - the options set by curl(...)
defaultOptions - the defaultOptions
effectiveOptions - the options curl used
methods:
info(name) - Get information of result, see 'info' section
REMARK:
If the http is redirected, then header will contain at least 2 http headers.
Curl Control
members
debug (default: false)
- logging node-curl debug info
methods:
void reset()
- reset curl and set options to default options
void setDefaultOptions(options, reset = true)
- set default options
curl create(defaultOptions)
- create a new curl with default options
Any cURL Easy Options
eg: CURLOPT_VERBOSE will be VERBOSE, CURLOPT_HEADER will be HEADER
Full list at http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
node-curl Extra Options
RAW - Returns Buffer instead of String in result.body
DEBUG - Replace curl.debug
About slist parameters
node-curl support slist which map to Javascript Array
eg:
HTTPHEADER: ['FOO', 'BAR']
HTTPHEADER: 'FOO'
any non-array parameter will convert to [ parameter.toString() ]
Any cURL Info options
eg: CURLINFO_EFFECTIVE_URL will be EFFETCTIVE_URL
full list at http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html
About slist
slist will be returns in Array
eg: CURLINFO_COOKIELIST
Use MULTIPART option
There are 4 options in MULTIPART, name
, file
, type
, contents
curl('127.0.0.1/upload.php', {
MULTIPART: [
{name: 'file', file: '/file/path', type: 'text/html'},
{name: 'sumbit', contents: 'send'}
]
}, function(e) {
console.log(e);
console.log(this.body);
this.close()
});
require 'node-curl/lib/Curl'
Methods:
Curl setopt(optionName, optionValue)
Curl perform()
Curl on(eventType, callback)
Mixed getinfo(infoName)
Events:
'data', function(Buffer chunk) {}
'header', function(Buffer chunk) {}
'error', function(Error error) {}
'end', function() {}
Example: examples/low-level.js
var Curl = require('node-curl/lib/Curl')
var p = console.log;
var url = process.argv[2];
var curl = new Curl();
if (!url)
url = 'www.yahoo.com';
curl.setopt('URL', url);
curl.setopt('CONNECTTIMEOUT', 2);
// on 'data' must be returns chunk.length, or means interrupt the transfer
curl.on('data', function(chunk) {
p("receive " + chunk.length);
return chunk.length;
});
curl.on('header', function(chunk) {
p("receive header " + chunk.length);
return chunk.length;
})
// curl.close() should be called in event 'error' and 'end' if the curl won't use any more.
// or the resource will not release until V8 garbage mark sweep.
curl.on('error', function(e) {
p("error: " + e.message);
curl.close();
});
curl.on('end', function() {
p('code: ' + curl.getinfo('RESPONSE_CODE'));
p('done.');
curl.close();
});
curl.perform();