Expressテンプレートエンジンについて
過去にExpress.jsフレームワークを使用したことがある場合は、Expressがサーバー側のテンプレートエンジンを処理できることをご存知でしょう。 HTMLページにさまざまな情報やデータをビューに直接入力できます。 これにより、HTMLを動的に生成できます。
この記事では、Express用の3つの人気のあるテンプレートエンジンであるPug、EJS、Mustacheを紹介します。
Expressについて詳しく知りたい場合は、このリンクをたどってください。
どのテンプレートエンジンを使用する必要がありますか?
Expressで動作するさまざまなテンプレートエンジンがあります。 ExpressにあるデフォルトのテンプレートエンジンはJadeで、現在はPugとして知られています。 ただし、ExpressにインストールされているデフォルトのJadeは、引き続き古いバージョンを使用しています。
この内訳では、Pug、EJS、およびMustacheの基本的な構文と使用法を紹介します。
パグの使い方
Pug をインストールしてExpressアプリで使用するには、最初にnpm
を使用してインストールする必要があります。
$ npm install pug
次に、アプリを初期化するときにビューエンジンをpug
に設定し、get
呼び出しを行って、ビューをレンダリングします。
const express = require('express'); const app = express(); app.set('view engine', 'pug'); app.get('/home', (req, res) => { res.render('home'); });
Expressアプリでこれを行ったので、views
ディレクトリにviews/home.pug
としてテンプレートを追加し、次のように入力できます。
h2 This is the home page p It's a test view
そのビューは、テキスト「これはホームページです」をラップするh2
タグと、テキスト「これはテストビューです」をラップするp
タグを使用してHTMLテンプレートを作成することになります。
Expressアプリケーションからhome
ビューにデータを渡したい場合は、次のように変数をレンダリングできます。
app.get('/home', (req, res) => { res.render('home', { animal: 'Alligator' }); });
次に、view
は次のようになります。
h2 This is the #{animal} home page p It's a test view
次に、h2
タグが「これはワニのホームページです」というテキストを囲みます。 それを超えて、あなたはあなたが適当と思うようにあなた自身のパグファイルを実験して構築することができます!
EJSの使い方
Pugの紹介が終わったので、EJSを試してみましょう。
$ npm install ejs
EJSをインストールしたら、Expressアプリに呼び出すことができます。
const express = require('express'); const app = express(); app.set('view engine', 'ejs'); app.get('/home', (req, res) => { res.render('home'); });
ビューエンジンをejs
に変更したので、views/home.ejs
の下のviews
ディレクトリにテンプレートを作成できます。 EJSは、テンプレートに通常のHTMLを使用します。
<h2>This is the home page</h2> <p>It's a test view</p>
ここで、HTMLページに動物のリストを追加するとします。 Expressアプリケーションを介して一連の動物をEJSテンプレートに渡すことができます。
app.get('/home', (req, res) => { let animals = [ { name: 'Alligator' }, { name: 'Crocodile' } ]; res.render('home', { animals: animals }); });
views/home.ejs
ファイルでは、.forEach
を使用してデータをループできます。
<h2>This is the home page</h2> <p>It's a test view</p> <ul> <% animals.forEach((animal) => { %> <li><%= animal.name %></li> <% }); %> </ul>
このコードを使用して、animals
配列に対して.forEach
ループを実行し、li
タグ内に各動物の名前を出力します。 そして、それがすべてです! EJSテンプレートでJavaScriptを直接呼び出して、好きなように使用できます。
口ひげの使い方
最後のテンプレートエンジンでは、MustacheをインストールしてExpressアプリケーションで使用する方法について説明します。
$ npm i mustache-express
次に、Expressアプリケーションでビューエンジンを設定できます。
const express = require('express'); const mustacheExpress = require('mustache-express'); const app = express(); app.engine('mustache', mustacheExpress()); app.set('view engine', 'mustache'); app.get('/home', (req, res) => { res.render('home'); });
口ひげのファイル拡張子は次のようになります:views/home.mustache
:
<h2>This is the home page</h2> <p>It's a test view</p>
また、Expressアプリケーションのデータをテンプレートに表示するには、データをルートに渡します。
app.get('/home', (req, res) => { res.render('home', { animal: 'Alligator' }); });
次に、mustache
テンプレート内で、変数を直接呼び出すことができます。
<h2>This is the {{ animal }} home page</h2> <p>It's a test view</p>
次に、.mustache
ファイルのanimal
に「ワニ」と表示されます。 Mustacheの使用方法の詳細については、こちらのページをご覧ください。
シンプルで効率的
Expressのテンプレートエンジンは、アプリケーションで静的テンプレートファイルを提供するための優れた方法です。 テンプレートを介してデータを簡単に表示できる柔軟性があります。 次回Expressプロジェクトを作成するときは、これらのテンプレートエンジンを確認して、試してみてください。