過去に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

そのビューは、最終的にHTMLテンプレートを作成します。 h2 テキストを折り返すタグ「これはホームページです」、および p 「これはテストビューです」というテキストをラップするタグ。

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 下のディレクトリ views/home.ejs. 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>

このコードを使用すると、 .forEach ループオーバー animals 配列し、各動物の名前を内に出力します 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>

それで animal の中に .mustache ファイルには「ワニ」と表示されます。 Mustacheの使用方法の詳細については、こちらのページをご覧ください。

シンプルで効率的

Expressのテンプレートエンジンは、アプリケーションで静的テンプレートファイルを提供するための優れた方法です。 テンプレートを介してデータを簡単に表示できる柔軟性があります。 次回Expressプロジェクトを作成するときは、これらのテンプレートエンジンを確認して、試してみてください。