1.0.1 • Published 7 years ago
jf-http-request v1.0.1
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');