수색…


넌 잡스

블록 상속, 자동 이스케이프, 매크로, 비동기 제어 등을 포함한 서버 측 엔진. 심하게 jinja2에서 영감을 받았으며, Twig (php)와 매우 유사합니다.

문서 도구 - http://mozilla.github.io/nunjucks/
설치 - npm i nunjucks

아래 익스프레스의 기본 사용법.

app.js

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

var app = express();
app.use(express.static('/public'));

// Apply nunjucks and add custom filter and function (for example). 
var env = nunjucks.configure(['views/'], { // set folders with templates
    autoescape: true, 
    express: app
});
env.addFilter('myFilter', function(obj, arg1, arg2) {
    console.log('myFilter', obj, arg1, arg2);
    // Do smth with obj
    return obj;  
});
env.addGlobal('myFunc', function(obj, arg1) { 
    console.log('myFunc', obj, arg1);
    // Do smth with obj
    return obj;
});

app.get('/', function(req, res){
    res.render('index.html', {title: 'Main page'});    
});

app.get('/foo', function(req, res){
    res.locals.smthVar = 'This is Sparta!';
    res.render('foo.html', {title: 'Foo page'});    
});

app.listen(3000, function() {
    console.log('Example app listening on port 3000...');
});

/views/index.html

<html>
<head>
    <title>Nunjucks example</title>
</head>
<body>
{% block content %} 
{{title}}
{% endblock %}
</body>
</html>

/views/foo.html

{% extends "index.html" %}

{# This is comment #}
{% block content %}
    <h1>{{title}}</h1>
    {# apply custom function and next build-in and custom filters #}
    {{ myFunc(smthVar) | lower | myFilter(5, 'abc') }} 
{% endblock %}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow