Expressでは「ejs」「ect」「haml」「jade」など、いろいろなテンプレートエンジンを使用してビューを記述できます。ここでは代表的な2つのテンプレートエンジンを見てみましょう。
「jade」は、「Haml」の影響を受けたJavaScript製テンプレートエンジンです。通常のHTMLとは違い、タグを< >なしで書き、インデントでタグの関係を記述します。また、ファイル内にJavaScriptを書くこともできます。
例えば下記のようなHTMLは、
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>Template Engine Sample</title> </head> <body> <p>Hello, Template Engines!</p> </body> </html>
jadeでは次のように記述できます。
!!! 5 html(lang = "ja") head meta(charset = "utf-8") title Template Engine Sample body p Hello, Template Engines!
タグの記述やネストがすっきり書けていいですね。ただ、この少し特殊な記法はちょっとだけ慣れが必要かもしれません。
「ect」は、パフォーマンスに優れ、「ejs」に似た記述が可能なテンプレートエンジンです。タグは通常のHTMLと同じように書きますが、CoffeeScriptのシンタックスも使用可能になっています。
・ ・ <body> <% if @users?.length : %> <ul> <% for user in @users : %> name:<%= user.name %> <% end %> </ul> <% else : %> <p>List is empty</p> <% end %> </body> ・ ・
パフォーマンスや機能的にも優れているectですが、後述するExpressの自動生成機能ではectを使用できないので注意してください(自動生成後に自分で書き換える必要がある)。
Express 4.xでは、「express-generator」というnpmモジュールを使用すると、アプリのひな型を自動生成することができます。ビューのテンプレートエンジンも選択でき、すぐに動作を確認することが可能です。
express-generatorについては次の章で説明します。
では、Expressをインストールして実際に動かしてみましょう。まずはnpmでexpressモジュールをインストールします。
% npm install express
モジュールがインストールできたら、下記のようにjsファイルを作成しましょう。getメソッドでのルーティング処理を定義し、3000番ポートでアプリを起動します。
var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello Express!'); }); app.listen(3000);
nodeコマンドでアプリを実行し、「http://localhost:3000」にブラウザーでアクセスしてみてください。画面にメッセージが表示されます。
Copyright © ITmedia, Inc. All Rights Reserved.