Node.js + Express 4.xで、Gzip圧縮を実装する

2015-09-02

インターネット上には、Express 3.x系の情報ばかりで、苦労したので備忘録として。

前提

以下のバージョンを使用しています。

モジュール名バージョン
Node.js0.12.0
Express4.13.3
compression1.5.2

モジュールのインストール

あらかじめ必要なモジュールをインストールします。

cd /path/to/project-directory/
npm install express --save
npm install compression --save

最新版で本記事どおりうまく動かないなどの場合は、以下のようにバージョンを指定してインストールしてください。

cd /path/to/project-directory/
npm install express@4.13.3 --save
npm install compression@1.5.2 --save

コード本文

Node.jsのコードを記述していきます。

var express = require('express');
var app = express();
var compression = require('compression');

app.use(compression({
  threshold: 0,
  level: 9,
  memLevel: 9
}));

/**
 \* あとは処理を記述していく
 \*/

app.get('/', function (req, res) {
  // 処理
});

app.listen(3000);

これで実装できます。

これでもうまくいかない場合は、ミドルウェア(app.useの箇所)の記述順序を変えてみてください。他のミドルウェアが導入されている場合、記述の順番によっては動作しないことがあります。

経験上、compressionはapp.useの一番先頭に持ってこないと、うまく動作しないようです。ご注意下さい。

まとめ

Node.jsたのしい。

筆者について

「もりやませーた」として活動している、フリーランスエンジニアです。1992年生まれ、神奈川県在住、既婚。

筆者のTwitterはこちら。記事に関するご意見等はTwitterの方へお寄せください。

その他業務に関するお問い合わせは、こちらのページをご覧ください。

JavaScript Node.js Express