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.

Ôťľ

Pou┼żitie template enginov v Express

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:

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ÔÇŁ.