Skip to content

Instantly share code, notes, and snippets.

@SoftwareDevPro
Last active February 11, 2021 22:00
Show Gist options
  • Save SoftwareDevPro/f390fada843b4658b75822abedf82f3a to your computer and use it in GitHub Desktop.
Save SoftwareDevPro/f390fada843b4658b75822abedf82f3a to your computer and use it in GitHub Desktop.
5 ways to make HTTP Requests in Node.JS
const https = require('https');
https.get('https://jsonplaceholder.typicode.com/posts', response => {
let data = [];
const hdrDate = response.headers
&& response.headers.date
? response.headers.date : 'no response date';
console.log('Status Code:', response.statusCode);
console.log('Date in Response header:', hdrDate);
response.on('data', chunk => {
data.push(chunk);
});
response.on('end', () => {
console.log('Response ended: ');
const posts = JSON.parse(Buffer.concat(data).toString());
for(post of posts) {
console.log(`Post id: ${post.id}, title: ${post.title}`);
}
});
}).on('error', error => {
console.log('Error: ', error.message);
});
const axios = require('axios');
axios.get('https://jsonplaceholder.typicode.com/posts')
.then(response => {
const hdrDate = response.headers
&& response.headers.date
? response.headers.date : 'no response date';
console.log('Status Code:', response.status);
console.log('Date in Response header:', hdrDate);
const posts = response.data;
for(post of posts) {
console.log(`Post id: ${post.id}, title: ${post.title}`);
}
})
.catch(error => {
console.log('Error: ', error.message);
});
const got = require('got');
got.get('https://jsonplaceholder.typicode.com/posts', { responseType: 'json' })
.then(response => {
const hdrDate = response.headers
&& response.headers.date
? response.headers.date : 'no response date';
console.log('Status Code:', response.statusCode);
console.log('Date in Response header:', hdrDate);
const posts = response.body;
for(post of posts) {
console.log(`Post id: ${post.id}, title: ${post.title}`);
}
}).catch(error => {
console.log('Error: ', error.message);
});
const superagent = require('superagent');
(async () => {
try {
const response = await superagent.get('https://jsonplaceholder.typicode.com/posts');
const hdrDate = response.headers
&& response.headers.date
? response.headers.date : 'no response date';
console.log('Status Code:', response.statusCode);
console.log('Date in Response header:', hdrDate);
const posts = response.body;
for(post of posts) {
console.log(`Post id: ${post.id}, title: ${post.title}`);
}
} catch (error) {
console.error(error.message);
}
})();
const fetch = require('node-fetch');
(async () => {
try {
const response = await fetch('https://jsonplaceholder.typicode.com/posts');
const hdrDate = response.headers
&& response.headers.get('date')
? response.headers.get('date') : 'no response date';
console.log('Status Code:', response.status);
console.log('Date in Response header:', hdrDate);
const posts = await response.json();
for(post of posts) {
console.log(`Post id: ${post.id}, title: ${post.title}`);
}
} catch (error) {
console.error(error.message);
}
})();

5 ways to make HTTP requests via Node.JS

Standard Node.js HTTP(S) module

To Install

Nothing to install included with Node.JS installation

Code Example

const https = require('https');

https.get('https://jsonplaceholder.typicode.com/posts', response => {
  
  let data = [];
  
  const hdrDate = response.headers
                  && response.headers.date 
                  ? response.headers.date : 'no response date';

  console.log('Status Code:', response.statusCode);
  console.log('Date in Response header:', hdrDate);

  response.on('data', chunk => {
    data.push(chunk);
  });

  response.on('end', () => {
    console.log('Response ended: ');
    const posts = JSON.parse(Buffer.concat(data).toString());

    for(post of posts) {
      console.log(`Post id: ${post.id}, title: ${post.title}`);
    }
  });
}).on('error', error => {
  console.log('Error: ', error.message);
});

Axios

To Install

npm install --save axios

Code Example

const axios = require('axios');

axios.get('https://jsonplaceholder.typicode.com/posts')
     .then(response => {
    
    const hdrDate = response.headers 
                  && response.headers.date
                  ? response.headers.date : 'no response date';
    
    console.log('Status Code:', response.status);
    console.log('Date in Response header:', hdrDate);

    const posts = response.data;

    for(post of posts) {
      console.log(`Post id: ${post.id}, title: ${post.title}`);
    }
  })
  .catch(error => {
    console.log('Error: ', error.message);
  });

Got

To Install

npm install --save got

Code Example

const got = require('got');

got.get('https://jsonplaceholder.typicode.com/posts', { responseType: 'json' })
   .then(response => {
    
    const hdrDate = response.headers
                  && response.headers.date
                  ? response.headers.date : 'no response date';
    
    console.log('Status Code:', response.statusCode);
    console.log('Date in Response header:', hdrDate);

    const posts = response.body;
    
    for(post of posts) {
      console.log(`Post id: ${post.id}, title: ${post.title}`);
    }

}).catch(error => {
    console.log('Error: ', error.message);
});

SuperAgent

To Install

npm install --save superagent

Code Example

const superagent = require('superagent');

(async () => {
  try {
    const response = await superagent.get('https://jsonplaceholder.typicode.com/posts');
    
    const hdrDate = response.headers
                  && response.headers.date
                  ? response.headers.date : 'no response date';
    
    console.log('Status Code:', response.statusCode);
    console.log('Date in Response header:', hdrDate);

    const posts = response.body;
    for(post of posts) {
      console.log(`Post id: ${post.id}, title: ${post.title}`);
    }
  } catch (error) {
    console.error(error.message);
  }
})();

node-fetch

To Install

npm install --save node-fetch

Code Example


const fetch = require('node-fetch');

(async () => {
  try {
    const response = await fetch('https://jsonplaceholder.typicode.com/posts');

    const hdrDate = response.headers 
                  && response.headers.get('date')
                  ? response.headers.get('date') : 'no response date';

    console.log('Status Code:', response.status);
    console.log('Date in Response header:', hdrDate);

    const posts = await response.json();
    
    for(post of posts) {
      console.log(`Post id: ${post.id}, title: ${post.title}`);
    }
  } catch (error) {
    console.error(error.message);
  }
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment