Как создать другой почтовый запрос с помощью Node.js?

Опубликовано: 26 Июля, 2021

POST-запрос - один из важных запросов во всех HTTP-запросах. Этот запрос используется для хранения данных на веб-сервере . Например, загрузка файла - это типичный пример почтового запроса. Есть много подходов к выполнению запроса HTTP POST в Node.js. Также доступны различные библиотеки с открытым исходным кодом для выполнения любых HTTP-запросов.

Ниже обсуждаются три подхода к созданию различных почтовых запросов.

  1. Использование модуля иглы
  2. Использование модуля аксиомы
  3. Использование модуля https

Ниже все три подхода подробно обсуждаются:

Подход 1. Один из способов сделать HTTP-запрос POST в Node.js - использовать библиотеку Needle . Needle - это HTTP-клиент для выполнения HTTP-запросов в Node.js, составных данных формы (например, загрузки файлов), автоматического синтаксического анализа XML и JSON и т. Д.

Структура проекта:

Установка модуля:

 npm установить иглу

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
needle( 'post' , ' https://requires.in/api/usersdata ' ,
data, {json: true })
.then((res) => {
// Printing the response after request
console.log( 'Body: ' , res.body);
}). catch ((err) => {
// Printing the err
console.error(err.Message);
}
);

Команда выполнения:

 узел index.js

Консольный вывод:

Подход 2: Еще одна библиотека, которую можно использовать, - это Axios . Это популярный модуль node.js, используемый для выполнения HTTP-запросов и поддерживающий все новейшие браузеры. Он также поддерживает синтаксис async / await для выполнения запроса POST.

Установка модуля:

 npm установить 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(
// Printing the response data
console.log( 'Body: ' , res.data);
} catch (err) {
// Printing the error
console.error(err.Message);
}
};

Команда выполнения:

 узел index.js

Консольный вывод:

Подход 3: также возможно выполнить POST-запрос с помощью встроенного в Node.js модуля HTTPS, который используется для отправки данных в зашифрованном формате.

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();

Команда выполнения:

 узел index.js

Вывод в консоль: