https://d226lax1qjow5r.cloudfront.net/blog/blogposts/5-ways-to-make-http-requests-in-node-js/http_requests_node_js.png

5 façons d'effectuer des requêtes HTTP dans Node.js

Publié le October 23, 2023

Temps de lecture : 6 minutes

Introduction

Apprendre à effectuer des requêtes HTTP dans Node.js peut sembler insurmontable, car des dizaines de bibliothèques sont disponibles, chaque solution prétendant être plus efficace que la précédente. Certaines bibliothèques offrent un support multiplateforme, tandis que d'autres se concentrent sur la taille des paquets ou l'expérience des développeurs.

Dans ce billet, nous allons explorer cinq des façons les plus populaires de faire des requêtes HTTP dans Node.js, avec des instructions étape par étape pour chaque méthode.

Tout d'abord, nous aborderons les requêtes HTTP et HTTPS à l'aide de la bibliothèque standard. Ensuite, nous vous montrerons comment utiliser des alternatives comme Node Fetch, Axios et SuperAgent.

Conditions préalables

Avant de commencer, assurez-vous que vous disposez des éléments suivants :

Comment faire des requêtes HTTP dans Node.js (5 méthodes)

Nous vous montrons ci-dessous comment effectuer des requêtes HTTP dans Node.js à l'aide des cinq méthodes suivantes :

  1. Bibliothèque standard (module HTTP)

  2. Bibliothèque standard (module HTTPS)

  3. Axios

  4. Récupération de nœuds

  5. SuperAgent

1. Bibliothèque standard (module HTTP)

La bibliothèque standard de Node.js est équipée du module par défaut http par défaut. Il peut effectuer une requête HTTP sans ajouter de paquets externes. Cependant, comme le module est de bas niveau, il pourrait être plus convivial pour les développeurs.

En outre, vous devez utiliser des flux asynchrones pour le découpage des données, car la fonction asynchrone/await des requêtes HTTP ne peut pas être utilisée avec cette bibliothèque. Les données de la réponse devront alors être analysées manuellement.

En règle générale, vous utiliserez le module HTTP à des fins de test ou de démonstration, car il n'est pas sécurisé.

Voici un exemple simple de demande GET en utilisant le module http module :

const http = require('http');

const options = {
  hostname: 'example.com',
  port: 80,
  path: '/',
  method: 'GET',
};

const req = http.request(options, (res) => {
  let data = '';

  res.on('data', (chunk) => {
    data += chunk;
  });

  res.on('end', () => {
    console.log(data);
  });
});

req.end();

2. Bibliothèque standard (module HTTPS)

Si vous avez besoin de faire des requêtes HTTPS sécurisées dans Node.js, vous pouvez utiliser le module https qui est également intégré à la bibliothèque standard. L'utilisation est assez similaire à celle du module http mais avec une sécurité accrue. Voici un exemple :

const https = require('https');

const options = {
  hostname: 'example.com',
  port: 443,
  path: '/',
  method: 'GET',
};

const req = https.request(options, (res) => {
  let data = '';

  res.on('data', (chunk) => {
    data += chunk;
  });

  res.on('end', () => {
    console.log(data);
  });
});

req.end();

3. Axios

Axios est une bibliothèque client HTTP populaire pour Node.js qui fournit une manière plus conviviale et plus riche en fonctionnalités de faire des requêtes HTTP. Axios simplifie la gestion des erreurs et prend en charge des fonctionnalités telles que l'analyse JSON automatique et les intercepteurs de requêtes/réponses, ce qui en fait un excellent choix pour de nombreux scénarios de requêtes HTTP.

Entrez la commande suivante dans votre terminal pour installer Axios depuis npm :

npm install axios

L'extrait de code suivant montre comment utiliser Axios pour effectuer une GET demande :

const axios = require('axios');

axios.get('https://example.com')
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

4. Recherche de nœuds

Node Fetch est une bibliothèque JavaScript adaptée à Node.js qui simplifie les requêtes HTTP. Elle offre une approche directe et basée sur les promesses pour récupérer des ressources sur Internet ou sur le serveur, telles que les requêtes GET, POST, PUT et DELETE. Conçu pour les applications côté serveur, il est compatible avec l'API Fetch, ce qui permet une transition facile du code entre les environnements côté client et côté serveur.

En outre, il convient de noter que extensions utiles telles que la limite de redirection, la limite de taille de la réponse et les erreurs explicites pour le dépannage. les erreurs explicites pour le dépannage peuvent être utilisées avec Node Fetch.

Entrez la commande suivante dans votre terminal pour installer Node Fetch à partir de npm :

npm install node-fetch

L'extrait de code suivant montre comment utiliser Node Fetch pour effectuer une requête :

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

fetch('https://example.com')
  .then((response) => response.text())
  .then((data) => {
    console.log(data);
  })
  .catch((error) => {
    console.error(error);
  });

5. SuperAgent

SuperAgent est un client HTTP léger et flexible qui prend en charge les promesses et la syntaxe de type callback. Il est connu pour sa simplicité et sa facilité d'utilisation.

Entrez la commande suivante dans votre terminal pour installer SuperAgent à partir de npm :

npm install superagent

L'extrait de code suivant montre comment utiliser le SuperAgent pour effectuer une requête :

const request = require('superagent');

request.get('https://example.com')
  .then((response) => {
    console.log(response.text);
  })
  .catch((error) => {
    console.error(error);
  });

Conclusion

Cet article a montré comment réaliser une fonctionnalité de requête HTTP en utilisant certaines des bibliothèques actuellement considérées comme les plus populaires dans Node.js.

Les autres langages disposent également d'une myriade de bibliothèques pour traiter les requêtes HTTP. Quel est le prochain langage sur lequel vous souhaitez que nous écrivions ? N'hésitez pas à nous le faire savoir ! Nous serions ravis de connaître votre avis ou de répondre à vos questions sur Twitter ou sur le Slack de la Slack de la communauté des développeurs de Vonage.

Lectures complémentaires

Partager:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael CrumpGestionnaire, expériences des développeurs

Michael Crump travaille chez Vonage au sein de l'équipe Developer Experiences. C'est un codeur, un YouTuber et un conférencier qui aborde fréquemment divers sujets liés à .NET et au développement des communications et de l'informatique en nuage. Il se passionne pour aider les développeurs à comprendre les avantages de chacun d'entre eux de manière simple.