Compression für JavaScript (Node.js): Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Compression für JavaScript (Node.js): Komplettguide mit Beispielen

1. Was ist Compression und warum braucht man sie?

Die Bibliothek compression für Node.js ist eine Middleware für das Express-Framework (und andere kompatible Frameworks), die HTTP-Antworten des Servers automatisch mit den Algorithmen Gzip, Deflate oder Brotli komprimiert. Sie ist der De-facto-Standard zur Optimierung der Performance von Webanwendungen auf Node.js, da sie die Größe der übertragenen Daten (HTML, CSS, JavaScript, JSON, Bilder usw.) zwischen Server und Client drastisch reduziert.

Warum ist das wichtig? Im modernen Web ist die Ladegeschwindigkeit entscheidend für die Benutzererfahrung und SEO. Durch Datenkomprimierung lässt sich das Datenvolumen um das 3- bis 10-fache reduzieren (je nach Inhaltstyp). Eine 100 KB große HTML-Datei wiegt nach Gzip-Komprimierung beispielsweise nur noch 10–15 KB. Das ist besonders relevant für mobile Nutzer mit begrenztem Datenvolumen und für APIs, die große JSON-Objekte zurückgeben. Ohne Compression sendet der Server "rohe" Daten, was die Ladezeit erhöht und das Netzwerk belastet.

Die Bibliothek automatisiert den gesamten Prozess: Sie prüft den Accept-Encoding-Header der Client-Anfrage, wählt den passenden Komprimierungsalgorithmus (meist gzip oder brotli, falls unterstützt), komprimiert die Antwort und fügt die entsprechenden Header hinzu (Content-Encoding, Vary). Der Entwickler muss die Middleware nur in die Express-Request-Pipeline einbinden. Das macht compression zu einem unverzichtbaren Werkzeug für jede Node.js-Produktionsanwendung.

2. Installation

Die Bibliothek wird über npm (Node Package Manager) installiert. Stellen Sie sicher, dass Node.js (Version 12 oder höher) installiert ist. Führen Sie folgenden Befehl im Stammverzeichnis Ihres Projekts aus:

npm install compression

Wenn Sie yarn verwenden:

yarn add compression

Nach der Installation kann die Bibliothek in Ihren Code importiert werden.

3. Schnellstart – Minimales Arbeitsbeispiel

Der einfachste Weg, compression zu nutzen, ist die Integration als Middleware in Express. Nachfolgend sehen Sie einen minimalen Server, der alle Antworten komprimiert:

const express = require('express');
const compression = require('compression');
const app = express();
const port = 3000;

// Middleware für Komprimierung einbinden
app.use(compression());

// Einfache Route
app.get('/', (req, res) => {
  // Große Antwort senden (String 1000 Mal wiederholen)
  const bigData = 'Hallo, Welt! '.repeat(1000);
  res.send(bigData);
});

app.listen(port, () => {
  console.log(`Server läuft auf http://localhost:${port}`);
});

Starten Sie den Server (node app.js) und öffnen Sie http://localhost:3000 im Browser. In den Entwicklertools (Tab Network) sehen Sie, dass die Antwort komprimiert ist (Header Content-Encoding: gzip). Die Antwortgröße ist um ein Vielfaches kleiner als das Original.

4. Wichtige Methoden/Funktionen/Klassen

Die Bibliothek compression stellt eine Hauptfunktion bereit – eine Middleware, die über ein Optionen-Objekt konfiguriert wird. Hier sind 8 wichtige Aspekte der Nutzung.

4.1. compression([options]) – Middleware erstellen

Signatur: compression(options?: CompressionOptions): RequestHandler

Funktion: Erstellt und gibt eine Middleware-Funktion für Express zurück. Akzeptiert ein optionales Objekt mit Einstellungen.

Beispiel:

const compression = require('compression');
const app = require('express')();

// Ohne Optionen (Standardverhalten)
app.use(compression());

// Mit Optionen
app.use(compression({
  level: 6,          // Komprimierungsstufe (0-9)
  threshold: 1024,   // Antworten unter 1 KB nicht komprimieren
  filter: (req, res) => {
    // Eigene Filterlogik                    

Empfehlungen