Node.jsの軽量webフレームワークExpress.jsの導入と拡張 | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

Node.jsの軽量webフレームワークExpress.jsの導入と拡張

Express とは

Express とは node.js の軽量 web フレームワークです。
node.js の web フレームワークの中でも最も有名なものです。
MEAN スタック の「E」の箇所と言えば有名なのが伝わりますでしょうか?

非常にシンプルでとっつきやすく、それ故に拡張性も高いです。
また有名なフレームワークでもあるのでかなりの情報が見つけられます。

スポンサーリンク

サーバー起動

まず module をインストールします。

npm install express

jsファイルを作成し module を呼び出します。

var express = require(‘express’);

呼び出された express メソッド を実行すれば準備完了です。
とりあえず8888ポートを listen してみましょう。

var app = express();
var server = app.listen(8888);

以上でサーバー起動完了です。
あとは app に対し設定を追加していくことで web アプリケーションが作れます。
非常にシンプルです。

ちなみに http モジュールを使った場合も同じような手順でサーバー起動ができます。

var http = require('http');
var server = http.createServer();

server.listen(8888);

静的ファイルの配信

続いて静的ファイルの配信を設定してみます。

といっても、1行でできてしまいます。
app.listen の手前に下記の記述で実装可能です。

app.use(express.static(‘./public’));

これで public 以下に配置された静的ファイルへアクセスできます。

ミドルウェアとルーティング

Express の拡張はミドルウェアと呼ばれる関数を実行することで行っていきます。

ミドルウェアはリクエスト( req )とレスポンス ( res ) に対し読み取り、書き換えが可能です。
これによって特定のルートにアクセスしてきたリクエストに対し特定のレスポンスを返す処理を実装することができます。

log_hoge = function(req, res, next){
  console.log(‘hoge’);
  next();
}

これで log_hoge というミドルウェアが作成できます。

あとは app オブジェクトの use メソッドでミドルウェアを指定して使用することができます。

app.use(log_hoge);

これで先程設定した静的ファイルにブラウザでアクセスすると hoge という文字がサーバー側で出力されます。

続いてルーティングです。
現時点では静的ファイルにしかアクセスできません。
ルーティングを設定するには app オブジェクトの各メソッドを使用します。

app.get(‘/fuga’, function (req, res) {
  res.send(‘fuga requested!’);
});

これで GET メソッドで /fuga にアクセスするとブラウザで 「fuga requested!」が表示されます。

このようにリクエストする URL 毎にどのようなレスポンスを返すのかを設定していきます。

テンプレート・エンジン jade の利用

Express ではテンプレートエンジンを指定しておくことで
テンプレートエンジンで作成されたファイルをコンパイルして配信することができます。

あらかじめ module をインストールしておきます。

npm install jade
var data = {title: “piyo”};

app.set('view engine', 'jade');
app.get('/', function (req, res) {
  res.render('index', data);
});

あとは views ディレクトリの中に該当するファイルがあれば
html としてレスポンスが取得できます。

また data には入れた値は jade 側で参照することができます。
ミドルウェア内でデータベースからデータを取得したり、別ファイルのデータを使うことも可能です。

ここまでくれば基本的な web アプリケーションは実装できそうですね。

一点気を付ける必要がある点として、ほぼすべての処理が非同期で実行されるためかなりのコールバックがネストされる点でしょうか。
ミドルウェアの next 関数等も設定しておかないと接続がハングしてしまいます。

まとめ

Node.js のフレームワークとして非常にメジャーな Express.js の概要と拡張の手段について書かせて頂きました。
ミドルウェアは上記のように自分で追加することもできますし、サードパーティ製のミドルウェアを npm 等からインストールし利用することもできます。
他のフレームワークと比較した時記述する項目が多いですが、その分カスタマイズ性が高く応用が利きます。

日本語の情報も多いので、Node.js でのフレームワークを使ってみる場合はまず Express.js が楽に使え後の拡張もスムーズにできるでしょう。


03-6441-3336

いますぐ無料で
お試しください。

SiTestの革新的な機能を、
1か月間無料でお試しいただけます。

お名前【必須】
メールアドレス【必須】
電話番号【必須】

利用規約はこちら