[Connect 2.0][1] has added support for [compress()][2] middleware based on the [new zlib stuff][3] with that has just come out in Node Core API.
You can make use of this in your express server by adding a dependency to connect 2.0 in your `package.json` file:
{
...
dependencies: {
"connect" : "2.x",
"express" : "2.x",
// etc..
}
}
And then apply the following logic into your express app configuration:
// Create static file server with gzip support
var app = express.createServer(express.logger());
app.use(connect.compress());
app.use(express.static(__dirname + '/public'));
app.listen(80);
Please note that this stuff **is still pretty new** and while I could get it to work locally, my [Heroku][4] cloud application complained about the dependency on Compress 2.x during the pre-commit hook when deploying via git:
-----> Heroku receiving push
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.4.7
Using npm version: 1.0.106
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
npm ERR! Error: No compatible version found: connect@'>=2.0.0- <3.0.0-'
As you can see, they're still using an old version of node (0.4.7).
--------------
**UPDATE:**
Actually, I could get Heroku to deploy this by adding the corresponding `engines` section in the `package.json`:
{
...
"engines": {
"node": ">= 0.6.0 < 0.7.0"
}
}
And these are the results when using a http compression tester:
![enter image description here][5]
**UPDATE June 2014**
Hiya, if you are reading this now. Dont forget that the stuff above is only relevant to Express 2.0.
Express 3.0 and 4.0 use different syntax for enabling http compression, see post by gasolin just below.
[1]:
[To see links please register here]
[2]:
[To see links please register here]
[3]:
[To see links please register here]
[4]:
[To see links please register here]
[5]: