Zum Inhalt springen
Aback Tools Logo

Express.js-Komprimierungs-Middleware-Generator

Generieren Sie die Konfiguration der Express.js-Komprimierungs-Middleware mit dem npm-Paket compression - online und kostenlos. Unser Generator erzeugt ein vollständiges, sofort einsatzbereites Setup mit konfigurierbarem Komprimierungsgrad (1-9), Schwellenwert für die Antwortgröße, eigener Filterfunktion zum Überspringen bereits komprimierter Inhaltstypen und Vary-Header-Middleware. Unterstützt CommonJS-, ESM- und TypeScript-Ausgabe sowie Fastify- (@fastify/compress) und Koa-Varianten (koa-compress). Ohne Anmeldung, 100 % im Browser.

Express.js Compression Middleware Generator
Configure the options below to generate an Express.js compression middleware setup using the compression npm package. Supports CommonJS, ESM, and TypeScript output. All generation happens in your browser - no signup required.
1 (fastest)Default - recommended for most apps9 (smallest)

Responses smaller than this threshold are not compressed. 1KB is the recommended default.

Higher values use more memory but improve compression speed. Default (8) is recommended for most servers.

Options

Install

npm install compression

app.js

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

// Custom filter - skip compression for already-compressed content types
function shouldCompress(req, res) {
  // Don't compress responses with this request header
  if (req.headers['x-no-compression']) return false;

  // Skip already-compressed content types
  const contentType = res.getHeader('Content-Type');
  if (typeof contentType === 'string') {
    const skipTypes = [
      'image/jpeg', 'image/png', 'image/webp', 'image/avif',
      'image/gif', 'video/', 'audio/', 'application/zip',
      'application/gzip', 'application/x-bzip2', 'font/woff2',
    ];
    if (skipTypes.some(t => contentType.startsWith(t))) return false;
  }

  // Fall back to default compression filter
  return compression.filter(req, res);
}

const app = express();

// -- Compression middleware ----------------------------------------------------
// Must be registered BEFORE routes and static file serving
app.use(compression({
  // Compression level: 1 (fastest) to 9 (smallest). Default is zlib.Z_DEFAULT_COMPRESSION (6).
  level: 6,

  // Only compress responses above this byte threshold
  threshold: 1024, // 1KB

  // Custom filter function - skips already-compressed content types
  filter: shouldCompress,
}));

// Ensure Vary: Accept-Encoding is set for correct CDN caching
app.use((_req, res, next) => {
  res.setHeader('Vary', 'Accept-Encoding');
  next();
});

// -- Your routes --------------------------------------------------------------
app.get('/', (req, res) => {
  res.json({ message: 'Hello, compressed world!' });
});

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

// -- Brotli support note ------------------------------------------------------
// The 'compression' package only supports GZIP and DEFLATE.
// For Brotli support in Express, use 'shrink-ray-current' instead:
//
//   npm install shrink-ray-current
//
//   const shrinkRay = require('shrink-ray-current');
//   app.use(shrinkRay());
//
// Or use 'express-static-gzip' to serve pre-compressed .br and .gz files:
//   npm install express-static-gzip

The compression package uses Node.js's built-in zlib module and supports GZIP and DEFLATE only. Register it before all routes and express.static() calls for it to take effect.

Warum unseren Express.js-Komprimierungs-Middleware-Generator verwenden?

  • Sofortige Generierung der Express.js-Komprimierungskonfiguration: Unser Express.js-Komprimierungs-Middleware-Generator erzeugt sofort ein vollständiges, sofort einsatzbereites Middleware-Setup - einschließlich compression-Optionsobjekt, eigener Filterfunktion, Vary-Header-Middleware und Hinweisen zum Brotli-Upgrade. Kein manuelles Lesen der npm-Dokumentation erforderlich.
  • Sicherer Express.js-Komprimierungs-Middleware-Generator online: Ihre Konfigurationsentscheidungen verlassen Ihr Gerät nie, wenn Sie unseren Express.js-Komprimierungs-Middleware-Generator online nutzen. Die gesamte Codegenerierung läuft vollständig in Ihrem Browser - keine Serveranfragen, keine Datenspeicherung, 100 % privat.
  • CommonJS-, ESM- und TypeScript-Ausgabe: Generieren Sie die Express.js-Komprimierungs-Middleware im bevorzugten Modulformat - CommonJS (require), ESM (import) oder TypeScript mit vollständigen Typannotationen. Unterstützt außerdem Express-Router-, Fastify- (@fastify/compress) und Koa-Varianten (koa-compress).
  • Express.js-Komprimierungs-Middleware-Generator ohne Installation: Generieren Sie die Konfiguration der Express.js-Komprimierungs-Middleware direkt in Ihrem Browser. Kein Node.js, kein npm, keine IDE erforderlich. Unser kostenloser Generator funktioniert auf jedem Gerät mit modernem Browser - ohne Anmeldung, ohne Dateigrößenbeschränkung.

Häufig gestellte Fragen

Ein Express.js-Komprimierungs-Middleware-Generator erzeugt ein sofort einsatzbereites Komprimierungs-Middleware-Setup für Express.js-Anwendungen mit dem npm-Paket compression. Unser kostenloser Express.js-Komprimierungs-Middleware-Generator online erstellt die vollständige Konfiguration - einschließlich Komprimierungsgrad, Schwellenwert, eigener Filterfunktion und Vary-Header-Middleware.

Die Komprimierungs-Middleware muss vor allen Routen und vor express.static()-Aufrufen registriert werden. Wird sie nach einer Route registriert, werden Antworten dieser Route nicht komprimiert. Der generierte Code enthält einen Kommentar mit der richtigen Platzierung.

Ja. Die gesamte Codegenerierung läuft vollständig in Ihrem Browser mit JavaScript. Es werden keine Konfigurationsdaten an einen Server gesendet, remote gespeichert oder über das Netzwerk übertragen.

Ja - 100 % kostenlos, für immer. Ohne Anmeldung, ohne Konto, ohne Premium-Tarif, ohne Dateigrößenbeschränkung und ohne Werbung, die Ihren Arbeitsablauf unterbricht.

Nein - das npm-Paket compression unterstützt nur GZIP und DEFLATE. Für Brotli-Unterstützung in Express.js nutzen Sie shrink-ray-current oder express-static-gzip, um vorkomprimierte .br-Dateien auszuliefern. Der generierte Code enthält einen Kommentar, der beide Optionen erklärt.

Stufe 6 (Standard) wird für die meisten Express.js-Anwendungen empfohlen - sie bietet ein gutes Verhältnis zwischen Komprimierungsrate und CPU-Overhead. Nutzen Sie Stufe 1 für APIs mit hohem Durchsatz, bei denen CPU-Kosten eine Rolle spielen.

Ohne eigene Filterfunktion versucht die Komprimierungs-Middleware, bereits komprimierte Inhaltstypen zu komprimieren - JPEG, PNG, WebP, Video, ZIP und WOFF2-Schriften. Das verbraucht CPU ohne Größenersparnis. Die eigene Filterfunktion im generierten Code überspringt diese Inhaltstypen automatisch.

Die threshold-Option legt die minimale Antwortgröße in Bytes fest, unterhalb derer die Komprimierung übersprungen wird. Sehr kleine Antworten zu komprimieren verbraucht CPU und fügt Overhead ohne nennenswerte Ersparnis hinzu. Der Standardwert von 1 KB wird für die meisten Anwendungen empfohlen.

Die Express-App-Variante registriert die Komprimierungs-Middleware global für die gesamte Anwendung. Die Router-Variante registriert sie nur für einen bestimmten Router, sodass Sie die Komprimierung selektiv auf bestimmte Routengruppen anwenden können.