What is teeny-request?
The teeny-request npm package is a lightweight HTTP client designed to be a minimalistic wrapper around the native http and https modules in Node.js. It is used to make HTTP requests from Node.js applications with a simple and easy-to-use API.
What are teeny-request's main functionalities?
Simple HTTP GET requests
This feature allows you to perform a simple HTTP GET request to retrieve data from a specified URL.
const teenyRequest = require('teeny-request');
teenyRequest('http://example.com', (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body);
}
});
HTTP POST requests with JSON body
This feature allows you to perform an HTTP POST request with a JSON body to send data to a server.
const teenyRequest = require('teeny-request');
teenyRequest({
method: 'POST',
uri: 'http://example.com/api/data',
body: { key: 'value' },
json: true
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body);
}
});
Custom headers and other options
This feature allows you to customize the headers and other options for your HTTP request.
const teenyRequest = require('teeny-request');
teenyRequest({
method: 'GET',
uri: 'http://example.com',
headers: {
'User-Agent': 'My-Custom-User-Agent'
}
}, (error, response, body) => {
if (!error && response.statusCode == 200) {
console.log(body);
}
});
Other packages similar to teeny-request
axios
Axios is a promise-based HTTP client for the browser and Node.js. It provides a more feature-rich API compared to teeny-request, including interceptors, automatic transforms for JSON data, and client-side protection against XSRF.
got
Got is a human-friendly and powerful HTTP request library for Node.js. It supports streams, promises, and provides a wealth of options for customizing requests. It is more advanced and feature-rich than teeny-request.
node-fetch
node-fetch is a light-weight module that brings the Fetch API to Node.js. It is similar to teeny-request in terms of being minimalistic but is designed to closely mimic the browser fetch API.
request
Request is a simplified HTTP request client that is similar to teeny-request but has been deprecated. It was once one of the most popular HTTP client libraries in the Node.js ecosystem.
superagent
Superagent is a small progressive client-side HTTP request library, and Node.js module with the same API, sporting many high-level HTTP client features. It is more feature-rich than teeny-request, with a fluent API that allows chaining of requests.
teeny-request
Like request
, but much smaller - and with less options. Uses node-fetch
under the hood.
Pop it in where you would use request
. Improves load and parse time of modules.
import {teenyRequest as request} from 'teeny-request';
request({uri: 'http://ip.jsontest.com/'}, function (error, response, body) {
console.log('error:', error);
console.log('statusCode:', response && response.statusCode);
console.log('body:', body);
});
teenyRequest(options, callback)
Options are limited to the following
- uri
- method, default GET
- headers
- json
- qs
- useQuerystring
- timeout in ms
- gzip
request({uri:'http://service.com/upload', method:'POST', json: {key:'value'}}, function(err,httpResponse,body){ })
The callback argument gets 3 arguments:
- An error when applicable (usually from http.ClientRequest object)
- An response object with statusCode, a statusMessage, and a body
- The third is the response body (JSON object)
defaults(options)
Set default options for every teenyRequest
call.
let defaultRequest = teenyRequest.defaults({timeout: 60000});
defaultRequest({uri: 'http://ip.jsontest.com/'}, function (error, response, body) {
assert.ifError(error);
assert.strictEqual(response.statusCode, 200);
console.log(body.ip);
assert.notEqual(body.ip, null);
done();
});
Thanks
Special thanks to billyjacobson for suggesting the name. Please report all bugs to them.