5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.jsでNunjucksを設定する

Last updated at Posted at 2015-11-25

Nunjucks

node.jsのテンプレートエンジンはたくさんあるけど、nunjucksはpythonで書けたりします。
詳しいドキュメントはこちらを参照。
https://mozilla.github.io/nunjucks/

Jinja2とほぼ一緒。
http://jinja.pocoo.org/docs/dev/

nunjucksのnpmをインストール

$ npm install nunjucks --save

app.jsで読み込み

app.js
var express = require('express');
var path = require('path');
var nunjucks = require('nunjucks');
var app = express();

// nunjucks view engine
nunjucks.configure('views', {
    autoescape: true,
    express: app
});
// setup view engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');

expressを使っている場合は、nunjucks.configureに指定してやる。
view enginehtmlに。

変数宣言


{% set x = 5 %}

変数表示


{{ x }}

if文

{% if variable %}
  It is true
{% endif %}

for文


{% set items = [{"title": "a"}, {"title": "b"}] %}
{% for item in items %}
  <p>{{ item.title }}</p>
{% endfor %}

日付フォーマットで変換したい場合

nunjucks-date-filterというライブラリを使ってみる。
momentを雛形に作られているみたいです。

nunjucks-date-filterとconsolidateをインストール

$ npm install nunjucks-date-filter --save
$ npm install consolidate --save

app.jsで設定

app.js
var express = require('express');
var path = require('path');
var nunjucks = require('nunjucks');
var dateFilter = require('nunjucks-date-filter');
var cons = require('consolidate');
var app = express();

// nunjucks view engine
cons.requires.nunjucks = require('nunjucks');
var env = cons.requires.nunjucks.configure('views', {
    autoescape: true,
    express: app
});
// date format
dateFilter.setDefaultFormat('YYYY-MM-DD');
env.addFilter('date', dateFilter);

// setup view engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');

htmlでの記述方法

// with no format
This blog has been created at {{ creation_date | date }}.
 
// with a custom format
This blog has been created at {{ creation_date | date("YYYY") }}.
 
// with an addition first
This blog has been created at {{ creation_date | date("add", 7, "days") | date }}.
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?