Skip to content

matjaz/node-http.min

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minimal HTTP client library

NPM Build status Coverage Status js-standard-style Known Vulnerabilities

Minimal simple HTTP client with promises.
Supports HTTP, HTTPS and common methods GET, POST, PUT, PATCH, DELETE.
Includes timeout, query string, form data, JSON helpers.
No dependencies, under 100 SLOC, 100% code coverage.

Install

npm install --save http.min

Examples

GET

var http = require('http.min')
http('https://httpbin.org/get').then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response: ' + result.data)
})

POST

JSON

var http = require('http.min')
http.post('https://httpbin.org/post', {data: 'hello'}).then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response: ' + result.data)
})

Form urlencoded

data parameter is a string.

var http = require('http.min')
http.post('https://httpbin.org/post', 'data=hello').then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response: ' + result.data)
})

JSON

var http = require('http.min')
http.json('https://httpbin.org/get').then(function (data) {
  console.log('Response:', data.url)
})

Advanced

Functions also accept http.request options object.

var http = require('http.min')
var options = {
  protocol: 'https:',
  hostname: 'httpbin.org',
  path: '/get',
  headers: {
    'User-Agent': 'Node.js http.min'
  }
}
http.json(options).then(function (data) {
  console.log('Response:', data)
})

Helpers

var http = require('http.min')
var options = {
  uri: 'https://httpbin.org/post',
  // timeout in ms
  timeout: 1000,
  // query string helper
  query: {
    hello: 'test'
  },
  // form urlencoded
  form: {
    test: 'ok'
  },
  // handle JSON data
  json: true
  // send JSON data and expect JSON response
  json: {
    this: 'is data'
  },
  request: function (req) {
    // hook to manipulate request before being sent
    // instace of node http.ClientRequest
    req.setTimeout(2000)
    req.on('upgrade', ...)
  }
}
http.post(options).then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response:', result.data)
})

License

ISC

About

Minimalistic and simplistic HTTP(S) client. No dependencies, under 100 SLOC, 100% coverage.

Resources

Stars

Watchers

Forks

Packages

No packages published