centra
v2.7.0
Published
The core lightweight HTTP client for Node
Downloads
3,537,341
Maintainers
Readme
The core lightweight HTTP client for Node
Install
npm i centra
Why centra?
centra is the best request library for developers; it provides a number of extremely useful features while still being one of the most lightweight Node.js HTTP client libraries available.
Use centra!
First, require the library.
const c = require('centra')
Then let's make a request in an async function!
;(async () => {
const res = await c('https://example.com').send()
console.log(await res.text())
})()
More advanced usage
Send data in a JSON body
c('https://example.com/nonexistentJSONAPI', 'POST').body({
'name': 'Ethan'
}, 'json').send().then((res) => {
/*...*/
})
Send data in a form body
c('https://example.com/nonexistentJSONAPI', 'POST').body({
'name': 'Ethan'
}, 'form').send().then((res) => {
/*...*/
})
Set query string parameters
One at a time:
c('https://example.com/user').query('id', 'u1817760').send().then((res) => {
/*...*/
})
Many at a time:
c('https://example.com/user').query({
'id', 'u1817760',
'name': 'Ethan'
}).send().then((res) => {
/*...*/
})
Set a request timeout
c('https://example.com').timeout(2000).send().then((res) => {
// Success!
}).catch((err) => {
// Has the request timed out?
})
Stream a request's response
In this example, the stream is piped to a file:
// require the fs module beforehand
c('https://example.com').stream().send().then((stream) => stream.pipe(fs.createWriteStream(path.join(__dirname, 'logo.png'))))
Follow redirects
c('https://example.com/').followRedirects(5).send()
Switch paths on the fly
c('https://example.com/test').path('/hello').send()
// This will make a request to https://example.com/test/hello
Specify request headers
One at a time:
c('https://example.com').header('Content-Type', 'application/json').send()
Many at a time:
c('https://example.com').header({
'Content-Type': 'application/json',
'X-Connecting-With': 'centra'
}).send()
Modify core HTTP request options
See http.request's options for more information about core HTTP request options. Let's change our localAddress as an example.
c('https://example.com').option('localAddress', '127.0.0.2').send()
Accept compressed responses
c('https://example.com').compress().send()
// This will cause centra to accept compressed content from the server. (gzip and deflate are currently supported)