Gerador de middleware de compressão do Express.js
Gere a configuração do middleware de compressão do Express.js com o pacote npm compression, online e grátis. Nosso gerador produz uma configuração completa e pronta para colar, com nível de compressão configurável (1-9), limite de tamanho de resposta, função de filtro personalizada para ignorar tipos de conteúdo já comprimidos e middleware de cabeçalho Vary. Suporta saída CommonJS, ESM e TypeScript, além de variantes para Fastify (@fastify/compress) e Koa (koa-compress). Sem cadastro, 100 % no navegador.
compression npm package. Supports CommonJS, ESM, and TypeScript output. All generation happens in your browser - no signup required.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-gzipThe 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.
Por que usar nosso gerador de middleware de compressão do Express.js?
- Geração instantânea da configuração de compressão do Express.js: nosso gerador produz na hora uma configuração de middleware completa e pronta para colar - incluindo o objeto de opções do compression, a função de filtro personalizada, o middleware de cabeçalho Vary e notas sobre upgrade para Brotli. Sem precisar ler a documentação do npm manualmente.
- Gerador de middleware de compressão do Express.js online seguro: suas escolhas de configuração nunca saem do seu dispositivo ao usar nosso gerador online. Toda a geração de código roda inteiramente no seu navegador - sem requisições a servidores, sem retenção de dados, 100 % privado.
- Saída CommonJS, ESM e TypeScript: gere o middleware de compressão do Express.js no formato de módulo que preferir - CommonJS (require), ESM (import) ou TypeScript com anotações de tipo completas. Também suporta variantes de Express Router, Fastify (@fastify/compress) e Koa (koa-compress).
- Gerador de middleware de compressão do Express.js sem instalação: gere a configuração do middleware de compressão do Express.js diretamente no seu navegador. Sem Node.js, sem npm e sem IDE. Nosso gerador grátis funciona em qualquer dispositivo com navegador moderno - sem cadastro e sem limite de tamanho.
Perguntas frequentes
Um gerador de middleware de compressão do Express.js produz uma configuração de middleware de compressão pronta para colar em aplicações Express.js usando o pacote npm compression. Nosso gerador online grátis cria a configuração completa - incluindo nível de compressão, limite, filtro personalizado e middleware de cabeçalho Vary.
O middleware de compressão deve ser registrado antes de todas as rotas e antes das chamadas a express.static(). Se você registrá-lo depois de uma rota, as respostas dessa rota não serão comprimidas. O código gerado inclui um comentário indicando o local correto.
Sim. Toda a geração de código roda inteiramente no seu navegador com JavaScript. Nenhum dado de configuração é enviado a servidor algum, armazenado remotamente ou transmitido pela rede.
Sim - 100 % grátis, para sempre. Sem cadastro, sem conta, sem plano pago, sem limite de tamanho de arquivo e sem anúncios interrompendo seu trabalho.
Não - o pacote npm compression suporta apenas GZIP e DEFLATE. Para suporte a Brotli no Express.js, use shrink-ray-current ou express-static-gzip para servir arquivos .br pré-comprimidos. O código gerado inclui um comentário explicando as duas opções.
O nível 6 (padrão) é recomendado para a maioria das aplicações Express.js: oferece um bom equilíbrio entre taxa de compressão e custo de CPU. Use o nível 1 em APIs de alto throughput, onde o custo de CPU é uma preocupação.
Sem um filtro personalizado, o middleware de compressão tentará comprimir tipos de conteúdo já comprimidos - JPEG, PNG, WebP, vídeo, ZIP e fontes WOFF2. Isso consome CPU sem nenhum benefício de tamanho. A função de filtro personalizada do código gerado ignora automaticamente esses tipos de conteúdo.
A opção threshold define o tamanho mínimo de resposta em bytes abaixo do qual a compressão é ignorada. Comprimir respostas muito pequenas consome CPU e adiciona sobrecarga sem economia significativa. O limite padrão de 1 KB é recomendado para a maioria das aplicações.
A variante de app do Express registra o middleware de compressão globalmente em toda a aplicação. A variante de Router registra apenas em um router específico, permitindo aplicar a compressão de forma seletiva a determinados grupos de rotas.