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

5 Möglichkeiten, HTTP-Anfragen in Node.js zu stellen

Zuletzt aktualisiert am October 23, 2023

Lesedauer: 5 Minuten

Einführung

Zu lernen, wie man HTTP-Anfragen in Node.js stellt, kann sich überwältigend anfühlen, da Dutzende von Bibliotheken verfügbar sind, wobei jede Lösung behauptet, effizienter als die letzte zu sein. Einige Bibliotheken bieten plattformübergreifende Unterstützung, während andere sich auf die Größe der Pakete oder die Erfahrung der Entwickler konzentrieren.

In diesem Beitrag werden wir fünf der populärsten Methoden für HTTP-Anfragen in Node.js vorstellen, mit Schritt-für-Schritt-Anleitungen für jede Methode.

Zunächst werden wir HTTP-Anfragen und HTTPS-Anfragen mit der Standardbibliothek behandeln. Danach zeigen wir Ihnen, wie Sie Alternativen wie Node Fetch, Axios und SuperAgent verwenden können.

Voraussetzungen

Bevor Sie beginnen, vergewissern Sie sich, dass Sie die folgenden Informationen haben:

Wie man HTTP-Anfragen in Node.js stellt (5 Methoden)

Im Folgenden zeigen wir Ihnen, wie Sie HTTP-Anfragen in Node.js über die folgenden fünf Methoden stellen können:

  1. Standardbibliothek (HTTP-Modul)

  2. Standardbibliothek (HTTPS-Modul)

  3. Axios

  4. Knoten Holen

  5. SuperAgent

1. Standardbibliothek (HTTP-Modul)

Die Standardbibliothek in Node.js ist mit dem Standard http Modul ausgestattet. Es kann eine HTTP-Anfrage stellen, ohne externe Pakete hinzuzufügen. Da das Modul jedoch auf niedriger Ebene angesiedelt ist, könnte es entwicklerfreundlicher sein.

Darüber hinaus müssen Sie Folgendes verwenden asynchrone Streams für das Chunking von Daten verwenden, da die async/await-Funktion für HTTP-Anfragen mit dieser Bibliothek nicht verwendet werden kann. Die Antwortdaten müssten dann manuell geparst werden.

Normalerweise verwenden Sie das HTTP-Modul zu Test- oder Demonstrationszwecken, da es nicht sicher ist.

Hier ein einfaches Beispiel für die Erstellung einer GET Anfrage unter Verwendung des http Modul:

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. Standardbibliothek (HTTPS-Modul)

Wenn Sie in Node.js sichere HTTPS-Anfragen stellen müssen, können Sie das https Modul verwenden, das ebenfalls in der Standardbibliothek enthalten ist. Die Verwendung ist ähnlich wie bei dem http Modul, aber mit zusätzlicher Sicherheit. Hier ist ein Beispiel:

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 ist eine beliebte HTTP-Client-Bibliothek für Node.js, die eine benutzerfreundlichere und funktionsreichere Möglichkeit bietet, HTTP-Anfragen zu stellen. Axios vereinfacht die Fehlerbehandlung und unterstützt Funktionen wie automatisches JSON-Parsing und Request/Response-Interceptors, was es zu einer guten Wahl für viele HTTP-Anfrage-Szenarien macht.

Geben Sie den folgenden Befehl in Ihr Terminal ein, um Axios von npm zu installieren:

npm install axios

Der folgende Codeschnipsel zeigt, wie man Axios verwendet, um eine GET Anfrage:

const axios = require('axios');

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

4. Knoten abholen

Node Fetch ist eine JavaScript-Bibliothek, die auf Node.js zugeschnitten ist und die Erstellung von HTTP-Anfragen vereinfacht. Sie bietet einen unkomplizierten und Promise-basierten Ansatz für das Abrufen von Ressourcen aus dem Internet oder vom Server, wie z. B. GET-, POST-, PUT- und DELETE-Anfragen. Es wurde für serverseitige Anwendungen entwickelt und ist mit der Fetch-API kompatibel, was einen einfachen Codeübergang zwischen client- und serverseitigen Umgebungen ermöglicht.

Außerdem ist zu beachten, dass nützliche Erweiterungen wie z.B. Redirect-Limit, Antwortgrößenlimit und explizite Fehler für die Fehlersuche für die Verwendung mit Node Fetch verfügbar sind.

Geben Sie den folgenden Befehl in Ihr Terminal ein, um Node Fetch von npm zu installieren:

npm install node-fetch

Der folgende Codeschnipsel zeigt, wie eine Anfrage mit Node Fetch gestellt wird:

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 ist ein leichtgewichtiger und flexibler HTTP-Client, der Versprechen und Callback-Syntax unterstützt. Er ist bekannt für seine Einfachheit und Benutzerfreundlichkeit.

Geben Sie den folgenden Befehl in Ihr Terminal ein, um SuperAgent von npm zu installieren:

npm install superagent

Das folgende Codeschnipsel zeigt, wie Sie mit SuperAgent eine Anfrage stellen können:

const request = require('superagent');

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

Einpacken

In diesem Beitrag wurde gezeigt, wie man HTTP-Anfragefunktionen mit einigen der derzeit beliebtesten Node.js-Bibliotheken erreichen kann.

Auch in anderen Sprachen gibt es unzählige Bibliotheken, um HTTP-Anfragen zu bearbeiten. Über welche Sprache sollen wir als nächstes schreiben? Lassen Sie es uns wissen! Wir würden uns freuen, Ihre Gedanken zu hören oder Fragen zu beantworten auf Twitter oder der Vonage Entwickler-Community Slack.

Weitere Lektüre

Teilen Sie:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael CrumpManager, Entwicklererfahrungen

Michael Crump arbeitet bei Vonage im Developer Experiences Team und ist Programmierer, YouTuber und häufiger Sprecher zu verschiedenen Themen der .NET- und Cloud-/Kommunikationsentwicklung. Seine Leidenschaft ist es, Entwicklern die Vorteile der jeweiligen Technologien auf einfache Art und Weise näher zu bringen.