app.zestaw i aplikacja.silnik w Expressie

Podążam za węzłem.Js tutorial .

Dwie linijki, dla których nie jestem pewien to:

app.set('view engine', 'html');
app.engine('html', hbs.__express);

Sprawdziłam dokumentację dla app.set i mówi mi tylko:

Przypisuje nazwę ustawienia do wartości.

Ale moje pytanie brzmi, Jakie jest znaczenie używania tego. Wygooglowałem go i gdziekolwiek app.engine jest używany {[1] } jest wywoływany wcześniej.

Daj mi znać znaczenie używania app.set przed app.engine.

EDIT

Znalazłem następującą linijkę, ale nadal Nie wiem, ponieważ używam silnika szablonów za pierwszym razem:

Ale możemy powiedzieć Express, aby traktował pliki HTML jako dynamiczne za pomocą dyrektywy view engine, patrz powyżej.

Author: Golo Roden, 2014-04-09

1 answers

Pierwsza linia app.set informuje Express, którego silnika szablonów użyć: w tym przypadku, html. Wymaga to zainstalowania silnika szablonów o tej nazwie i aby ten silnik szablonów czuł się odpowiedzialny za pliki z rozszerzeniem .html.

Jeśli używasz ejs, na przykład, ta pojedyncza linia wystarczy (chociaż zwykle masz również drugie wywołanie app.set, które określa katalog, w którym należy szukać plików widoku):

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
/ Align = "left" / silnik szablonu dla innego rozszerzenia, np. chcesz, aby silnik ejs nie tylko dbał o pliki .ejs, ale także o Pliki .html.

W tym przypadku możesz użyć drugiej linii, która mówi Express, że dla plików z rozszerzeniem html chcesz wywołać funkcję hbs.__express, aby je renderować(ponieważ w rzeczywistości nie ma silnika szablonów o nazwie html). Oznacza to zasadniczo, że chcesz, aby silnik hbs renderował Pliki .html.

Funkcja __express jest de facto standard dla silników szablonowych pod węzłem.js, aby był zgodny z Express: tak powinna być nazwana ich funkcja renderowania, aby Express mógł ją łatwo znaleźć (jeśli ma inną nazwę, Możesz również skonfigurować tę funkcję, ale to inna historia).

Mam nadzieję, że to pomoże.
 48
Author: Golo Roden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 06:39:14