jf-http-request
v1.0.1
Published
Simple wrapper for NodeJS HTTP request. Use promises, events or callbacks.
Downloads
6
Maintainers
Readme
jf-http-request
Simple wrapper for NodeJS HTTP request.
Options
Option | Type | Description
-------------|--------|--------------
auth | string | Basic authentication i.e. user:password
to compute an Authorization
header.
family | number | IP address family to use when resolving host and hostname. Valid values are 4 or 6. When unspecified, both IP v4 and v6 will be used.
headers | object | An object containing request headers.
host | string | A domain name or IP address of the server to issue the request to (default: localhost
).
hostname | string | Alias for host
. To support url.parse()
, hostname
is preferred over host
.
localAddress | string | Local interface to bind for network connections.
method | string | A string specifying the HTTP request method (default: GET
).
path | string | Request path (default: /
). Should include query string if any: /index.html?page=12
. An exception is thrown when the request path contains illegal characters. Currently, only spaces are rejected but that may change in the future.
port | number | Port of remote server (default: 80
).
protocol | string | Protocol to use (default: http:
).
socketPath | string | Unix Domain Socket (use one of host:port or socketPath).
timeout | number | A number specifying the socket timeout in milliseconds. This will set the timeout before the socket is connected.
body | * | Content to send to server (default: undefined
).
requestType | string | Type of result to return ('promise', 'events') or use a function for use the callback system (defaults: events
).
url | string | A string specifying the URL for request and passed to url.parse
.
Response types
There are three types of responses:
- ok :
code >= 200 && code < 300 || code = 304
- fail :
code < 200 || (code >= 300 && code !== 304)
- error : Any request error (timeout, no host, etc).
Request types:
With parameter requestType
you can change value returned (default: promise
).
Using callbacks
const jfHttpRequest = require('jf-http-request');
//...
jfHttpRequest(
{
url : 'http://jsonplaceholder.typicode.com/posts/1',
// Callback: NodeJS way
requestType : (response, status) => {
switch (status)
{
case 'request-error':
console.log('ERROR: %s', error.message);
break;
case 'request-fail':
console.log('FAIL : %d', response.statusCode);
break;
case 'request-ok':
console.log('OK : %s', response.body);
break;
}
}
}
)
Using events
const jfHttpRequest = require('jf-http-request');
// events: EDP way
jfHttpRequest(
{
requestType : 'events',
url : 'http://jsonplaceholder.typicode.com/posts/1'
}
)
.on('request-error', error => console.log('ERROR: %s', error.message))
.on('request-fail', response => console.log('FAIL : %d', response.statusCode))
.on('request-ok', response => console.log('OK : %s', response.body));
Using promises
const jfHttpRequest = require('jf-http-request');
async function doRequest(url)
{
try
{
const response = await jfHttpRequest(
{
// Promise: async/await way
requestType : Promise,
url
}
);
console.log(response); // ok & fail
}
catch (error)
{
console.log(error.message); // error
}
}
doRequest('http://jsonplaceholder.typicode.com/posts/1');