0
0
ExpressHow-ToBeginner · 3 min read

How to Use Compression in Express for Faster Responses

To use compression in Express, install the compression package and add it as middleware with app.use(compression()). This compresses HTTP responses, making your app faster by sending smaller data over the network.
📐

Syntax

The basic syntax to enable compression in Express is to import the compression middleware and use it in your app with app.use(compression()). This applies gzip compression to all HTTP responses by default.

  • const compression = require('compression'): Imports the compression middleware.
  • app.use(compression()): Adds compression to all routes.
javascript
const express = require('express')
const compression = require('compression')

const app = express()

app.use(compression())

app.get('/', (req, res) => {
  res.send('Hello, compressed world!')
})

app.listen(3000)
💻

Example

This example shows a simple Express server using compression middleware. When you visit the root URL, the response is compressed automatically, reducing the size of the data sent to the browser.

javascript
import express from 'express'
import compression from 'compression'

const app = express()

app.use(compression())

app.get('/', (req, res) => {
  const largeText = 'Hello! '.repeat(1000) // Large response to see compression effect
  res.send(largeText)
})

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

Common Pitfalls

Some common mistakes when using compression in Express include:

  • Not installing the compression package before using it.
  • Placing app.use(compression()) after routes, so responses are not compressed.
  • Trying to compress already compressed files like images or videos, which wastes CPU.
  • Not handling proxies or HTTPS properly, which can affect compression behavior.

Always add compression middleware early, before defining routes.

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

const app = express()

// Wrong: compression after routes - no compression applied
app.get('/', (req, res) => {
  res.send('No compression here')
})

app.use(compression())

// Right: compression before routes
// app.use(compression())
// app.get('/', (req, res) => {
//   res.send('Compressed response')
// })
📊

Quick Reference

Compression Middleware Quick Tips:

  • Install with npm install compression.
  • Import and use with app.use(compression()) before routes.
  • Compresses responses using gzip by default.
  • Can be configured with options like threshold to control minimum response size.
  • Do not compress static files already compressed (use static middleware).

Key Takeaways

Add compression middleware early with app.use(compression()) to compress all responses.
Install the compression package before using it in your Express app.
Compression reduces response size, speeding up your app and saving bandwidth.
Avoid compressing already compressed files like images to save CPU.
You can customize compression behavior with options like minimum size threshold.