Tento dokument môže byť v porovnaní s dokumentáciou v angličtine zastaralý. Aktuálne informácie nájdete v dokumentácii v angličtine.
Template engine umožňuje použitie statických template súborov vo vašej aplikácii. Template engine nahradí v runtime premenné aktuálnymi hodnotami a pretransformuje template do HTML súboru poslaného klientovi. Tento prístup robí návrh HTML stránok jednoduchším.
Medzi populárne template enginy fungujúce s Express patria Pug, Mustache a EJS. Express generátor požíva ako defaultný Pug, avšak podporuje aj mnohé ďalšie.
Zoznam podporovaných template enginov nájdete tu: Template Engines (Express wiki). Pozrite si taktiež Comparing JavaScript Templating Engines: Jade, Mustache, Dust and More.
Aby Express dokázal spracovať a vyrendrovať template súbory, musí aplikácia obsahovať nasledujúce nastavenia:
views
, cesta k priečinku, kde sa nachádzajú template súbory. Napr: app.set('views', './views')
. Defaultne to je priečinok views
nachádzajúci sa v hlavnom priečinku aplikácie.view engine
, template engine, ktorý chcete použiť. Napr., ak by ste chceli použiť Pug: app.set('view engine', 'pug')
Potom nainštalujte vybraný template engine ako npm dependenciu. Napr. pre inštaláciu Pug spustite:
$ npm install pug --save
Templatovacie enginy kompatibilné s Express ako napr. Pug exportujú funkciu __express(filePath, options, callback)
, ktorá je volaná pomocou res.render()
funkcie k vyrendrovaniu template kódu.
Niektoré template enginy používajú inú konvenciu. Consolidate.js knižnica mapuje konvencie všetkých populárnych Node.js template enginov tak, aby bezproblémov fungovali s Express.
Nastavenie parametra view engine zabezpečí, že nie je potrebné špecifikovať engine, ani načítať modul template enginu vo vašej aplikácii; Express načíta tento modul interne, ako je (pre príklad hore) zobrazené nižšie.
app.set('view engine', 'pug');
Vo views
priečinku vytvorte Pug template súbor s názvom index.pug
s takýmto obsahom:
html
head
title= title
body
h1= message
Potom zadefinujte route pre rendrovanie index.pug
súboru. Ak view engine
parameter nie je nastavený, musíte špecifikovať príponu vášho view
súboru. V opačnom prípade ju špecifikovať netreba.
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!'});
});
Po vykonaní requestu na hlavnú stránku, sa súbor index.pug
vyrendruje ako HTML.
Pre viac informácií ohľadom fungovania template enginov v Express si prečítajte: “Vývoj template enginov pre Express”.