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 が楽に使え後の拡張もスムーズにできるでしょう。
-
お問い合わせ
SiTest の導入検討や
他社ツールとの違い・比較について
弊社のプロフェッショナルが
喜んでサポートいたします。 -
コンサルティング
ヒートマップの活用、ABテストの実施や
フォームの改善でお困りの方は、
弊社のプロフェッショナルが
コンサルティングいたします。
今すぐお気軽にご相談ください。
今すぐお気軽に
ご相談ください。
(平日 10:00~19:00)
今すぐお気軽に
ご相談ください。
0120-315-465
(平日 10:00~19:00)
グラッドキューブは
「ISMS認証」を取得しています。
認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業
「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。