How to create different post request using Node.js ?
A POST request is one of the important requests in all HTTP requests. This request is used for storing the data on the WebServer. For Eg File uploading is a common example of a post request. There are many approached to perform an HTTP POST request in Node.js. Various open-source libraries are also available for performing any kind of HTTP request.
There are three approaches to create different post requests are discussed below.
- Using Needle Module
- Using axiom Module
- Using https Module
Below all three approaches all discussed in detail:
Approach 1: One of the ways of making an HTTP POST request in Node.js is by using the Needle library. Needle is a HTTP client for making HTTP requests in Node.js , multipart form-data (e.g. file uploads) , automatic XML & JSON parsing etc.
Project structure:
Installing module:
npm install needle
Index.js
Javascript
//Importing needle module const needle = require( 'needle' ); // Data to be sent const data = { name: 'geeksforgeeks' , job: 'Content Writer' , topic: 'Node.js' }; // Making post request data, {json: true }) .then((res) => { // Printing the response after request console.log( 'Body: ' , res.body); }). catch ((err) => { // Printing the err console.error(err.Message); } ); |
Execution command:
node index.js
Console Output:
Approach 2: Another library that can be used is Axios. This is a popular node.js module used to perform HTTP requests and supports all the latest browsers. It also supports async/await syntax for performing a POST request.
Installing module:
npm install axios
Index.js
Javascript
// Importing the axios module const axios = require( 'axios' ); // Data to be sent const data = { name: 'geeksforgeeks' , job: 'Content Writer' , topic: 'Node.js' }; const addUser = async () => { try { // Making post request const res = await axios.post( 'https://reqres.in/api/usersdata' , data); // Printing the response data console.log( 'Body: ' , res.data); } catch (err) { // Printing the error console.error(err.Message); } }; |
Execution command:
node index.js
Console Output:
Approach 3: It is also possible to perform a POST request using Node.js built-in HTTPS module. This module is used for sending the data in an encrypted format
Index.js
Javascript
// Importing https module const https = require( 'https' ); // Converting data in JSON format const data = JSON.stringify({ name: 'geeksforgeeks' , job: 'Content Writer' , topic: 'Node.js' }); // Setting the configuration for // the request const options = { hostname: 'reqres.in' , path: '/api/users' , method: 'POST' }; // Sending the request const req = https.request(options, (res) => { let data = '' ; res.on( 'data' , (chunk) => { data += chunk; }); // Ending the response res.on( 'end' , () => { console.log( 'Body:' , JSON.parse(data)); }); }).on( "error" , (err) => { console.log( "Error: " , err.message); }); // Write data to request body req.write(data); req.end(); |
Execution command:
node index.js
Console output:
Please Login to comment...