Connect 2.0 добавлена поддержка compress () промежуточного программного обеспечения на основе нового zlib , которое только что появилось в Node Core API.
Вы можете использовать это на своем экспресс-сервере, добавив зависимость для подключения 2.0 в вашем package.json
файле:
{
...
dependencies: {
"connect" : "2.x",
"express" : "2.x",
// etc..
}
}
А затем примените следующую логику в конфигурации вашего экспресс-приложения:
// 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);
Обратите внимание, что этот материал все еще довольно новый , и хотя я мог заставить его работать локально, мое облачное приложение Heroku жаловалось на зависимость от Compress 2.x во время предварительной проверки. -поддержка хука при развертывании через 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-'
Как вы видите, они все еще используют старую версию узла (0.4.7).
UPDATE:
На самом деле, я мог бы заставить Heroku развернуть это, добавив соответствующий раздел engines
в package.json
:
{
...
"engines": {
"node": ">= 0.6.0 < 0.7.0"
}
}
А вот результаты использования http-тестера сжатия:
ОБНОВЛЕНИЕ Июнь 2014
Привет, если ты читаешь это сейчас. Не забывайте, что все вышеперечисленное относится только к Express 2.0.
Express 3.0 и 4.0 используют разные синтаксисы для включения сжатия http, см. Сообщение от gasolin чуть ниже.