web-dev-qa-db-ja.com

nunjucksを使用してExpressフレームワークでHTMLを使用する方法-ヒスイなし

ExpressプロジェクトでHtmlをレンダリングするためにsendFileメソッドを使用しています。プロジェクトでパーシャルを使用したいと思います。そして、翡翠に切り替えないでください。

Express 3.xでパーシャルを使用して従来のHTMLを使用する方法はありますか? ejsを試しましたが、完全には理解できません。

25
Merlin

より「HTMLのような」テンプレートエンジンは nunjucks (その構文はあなたが経験したJinja2に似ています)です。

これが簡単なセットアップです。これは、ExpressとNunjucksの両方がインストールされていることを前提としています。

npm install express
npm install nunjucks

app.js

var nunjucks  = require('nunjucks');
var express   = require('express');
var app       = express();

app.listen(3012);

nunjucks.configure('views', {
  autoescape: true,
  express   : app
});

app.get('/', function(req, res) {
  res.render('index.html', {
    title : 'My First Nunjucks Page',
    items : [
      { name : 'item #1' },
      { name : 'item #2' },
      { name : 'item #3' },
      { name : 'item #4' },
    ]
  });
});

views/index.html

<!doctype html>
<html>
  <head>
    <title>welcome to {{ title }}</title>
  </head>
  <body>
    <ul>
      {% for item in items %}
        {% include "item.html" %}
      {% endfor %}
    </ul>
  </body>
</html>

views/item.html

<li>{{ item.name }}</li>
57
robertklep