Compression middleware makes your web app send smaller files to users. This helps pages load faster and saves internet data.
0
0
Compression middleware in Node.js
Introduction
When you want your website to load faster for visitors.
When your server sends large files like HTML, CSS, or JSON.
When users have slow internet connections and need smaller downloads.
When you want to reduce bandwidth costs by sending less data.
When building APIs that send lots of data to clients.
Syntax
Node.js
import compression from 'compression'; import express from 'express'; const app = express(); app.use(compression());
Use
app.use(compression()) before your routes to compress all responses.You can pass options to
compression() to control how compression works.Examples
This adds compression with default settings to all responses.
Node.js
app.use(compression());
This compresses all responses, even very small ones.
Node.js
app.use(compression({ threshold: 0 }));This skips compression if the request has a special header.
Node.js
app.use(compression({ filter: (req, res) => {
return req.headers['x-no-compression'] ? false : compression.filter(req, res);
}}));Sample Program
This simple Express server uses compression middleware. When you visit the homepage, it sends a large repeated text. Compression makes this response smaller and faster to load.
Node.js
import express from 'express'; import compression from 'compression'; const app = express(); // Use compression middleware app.use(compression()); app.get('/', (req, res) => { const bigText = 'Hello! '.repeat(1000); // Large response res.send(bigText); }); app.listen(3000, () => { console.log('Server running on http://localhost:3000'); });
OutputSuccess
Important Notes
Compression works best on text-based responses like HTML, CSS, JavaScript, and JSON.
Binary files like images or videos usually should not be compressed again by middleware.
Use browser DevTools Network tab to see if responses are compressed (look for content-encoding: gzip header).
Summary
Compression middleware makes server responses smaller to speed up loading.
It is easy to add with app.use(compression()) in Express apps.
Check your app's responses in browser tools to confirm compression is working.