Ich kenne Angularjs (1.x) und verwende Templates in Direktiven.
Momentan lerne ich nodejs und als Teil des Kurses werden Template-Engines erwähnt. Was sind die Vorteile, sie im Backend zu nutzen?
Momentan kann ich keine Verwendung sehen.
Wenn Sie Daten (z. B. aus einer Datenbank) haben, die in HTML gerendert werden müssen, können Sie eine Vorlage verwenden, um die Daten und eine Vorlage zu HTML zu übertragen (die anschließend an den Client geliefert wird) / p>
Wenn Ihre Frontend-Anwendung dasselbe tut, indem Sie XHR-Aufrufe oder etwas Ähnliches zum Abrufen der Daten vom Server verwenden, ist es im Allgemeinen nicht sinnvoll, HTML-Server-Seite zu rendern (stattdessen werden die Daten als JSON an den Client gesendet) / p>
Es hängt also davon ab, wie Ihre App (Frontend und Backend) strukturiert ist, wenn es sinnvoll ist oder nicht, eine Template-Engine zu verwenden.
Es gibt auch hybride Lösungen, bei denen der anfängliche HTML-Code serverseitig gerendert wird und dann die Client-Seite "übernimmt". Dies unterstützt beispielsweise React. Die große Idee ist, dass Sie die gleichen Komponenten sowohl auf dem Server als auch auf dem Client verwenden können und dass beim Öffnen einer Seite eine vollständig gerenderte Startseite angezeigt wird (anstatt dass die Client - Seite die Daten aus dem Backend zuerst und dann Rendern der Seite).
Sie brauchen sie eigentlich nicht, aber sie haben viele Funktionen, die Ihre Seiten dynamischer machen.
Sie können beispielsweise nur HTML mit diesem Code rendern
%Vor%Aber mit Engines können Sie Daten an die Vorlage senden. Ссылка
%Vor%Und jetzt auf Front-End-Templates (EJS in diesem Fall) füllt HTML mit Daten, die Sie senden. So wurde HTML dynamisch und Sie können jede Seite für jeden Benutzer unterschiedlich aussehen lassen.
%Vor%Mit nur HTML müssen Sie viele unnötige AJAX-Aufrufe machen, um Daten in HTML zu bekommen und hinzuzufügen, was eine schlechte Idee ist.
Hoffe, das hilft.
Eine View-Engine ermöglicht das Rendern von HTML mit Optionen. Zum Beispiel kann ich mit squirrelly eine Datei erstellen, die wie folgt aussieht:
%Vor%So könnte ich beispielsweise eine dynamische Benutzerprofil-URL mit Express anhören und dann dynamischen Inhalt zurückgeben.
Tags und Links node.js template-engine pug ejs