Gibt es eine Template-Engine für Node.js? [geschlossen]
271
Ich experimentiere mit dem Erstellen einer gesamten Webanwendung mit Node.js. Gibt es eine Vorlagen-Engine, die (zum Beispiel) der Django-Vorlagen-Engine oder ähnlichem ähnelt und es Ihnen zumindest ermöglicht, Basisvorlagen zu erweitern?
Ich habe gerade herausgefunden, dass die JavaScript V8-Engine schneller ist als Ruby, PHP und Python. Erstaunlich schnell für eine dynamische Sprache. Langsamer als Java und C #.
Nosredna
77
@Nosredna: Wie kann Java möglicherweise schneller sein als alles andere?! ;)
Daniel Sloof
27
@ Daniel Java ist heutzutage ziemlich schnell und schlägt alles außer Ada, C und C ++ in Debians Shootout-Benchmarks.
Mentalikryst
20
Jeder, der sich nicht um Syntax, Produktivität und etwas anderes als Leistung kümmert , sollte Raphters (Webframework für C)
Pablo B.
6
Bei node.js geht es nicht um die Sprache. Es geht total um das Design und die Art und Weise, wie js mit IO umgeht, was brillant ist. Sie könnten dafür sorgen, dass Ruby-Web-Frameworks schnell ausgeführt werden, wenn Sie die E / A-Bibliotheken neu gestalten.
Julx
Antworten:
166
Schauen Sie sich die Wiki-Seite zu Node js modules an. Sie haben alle Template-Engines aufgelistet , die node.js unterstützen.
@ThomasPotaire Es wurde veraltet, weil sie vorschlagen, stattdessen die npm-Suche zu verwenden.
inf3rno
52
Sie sollten in der Lage sein, mustache.js zu verwenden. Wenn es nicht funktioniert, senden Sie mir die Probleme und ich werde sie beheben, da ich sie sowieso in node.js verwenden werde.
Jade ist ziemlich cool. Ich habe gerade angefangen, es zu verwenden, kann also nicht mit seiner Leistung sprechen, aber ich mag die Syntax. Die integrierte Unterstützung in Express ist von Vorteil.
Broofa
3
Die Leistung ist ausreichend, Vorlagen sollten trotzdem zwischengespeichert werden. Denken Sie außerdem daran, horizontal und nicht vertikal zu skalieren, da Sie sonst möglicherweise überhaupt keine Template-Engine und nur einige Funktionen / Concats verwenden
tjholowaychuk
14
Es gibt ständig neue Template-Motoren.
underscore.js bietet js viel Unterstützung für funktionale Programmierung und verfügt über Vorlagen.
Daumen hoch für underscore.js. Tolle Bibliothek, ich benutze sie sowohl für meine Client-Seite als auch für die Arbeit von node.js. Ihre Template-Engine basiert auf der JS Micro Templating-Engine von John Resig ( ejohn.org/blog/javascript-micro-templating ), die ich schon oft verwendet habe. Afaik ist zu diesem Zeitpunkt die beste Option, wenn Sie mit node.js arbeiten.
Sie sollten sich node-asyncEJS ansehen , das explizit so konzipiert ist, dass es die asynchrone Natur von node.js berücksichtigt. Es erlaubt sogar asynchrone Codeblöcke innerhalb der Vorlage.
Sie können bartlos versuchen (es ist von Schweißnähten / Platten inspiriert):
Beispielsweise:
{ post:{ title:"Next generation templating: Start shaving!", text:"TL;DR You should really check out beardless!", comments:[{text:"Hey cool!"},{text:"Really gotta check that out..."}]}}
<h1>Next generation templating:Start shaving!</h1><p>TL;DR You should really check out beardless!</p><div><div class="comment"><p>Hey cool!</p></div><div class="comment"><p>Really gotta check that out...</p></div></div>
Bitte geben Sie in Ihrer Antwort mehr Informationen zu Ihrem Code und dem Link, auf den Sie verwiesen haben. Siehe: Wie zu
antworten
Wäre interessant, wie man die Datei tatsächlich verarbeitet oder Variablen innerhalb von Node
Julian F. Weinert
6
Ich habe einige Arbeiten an einem ziemlich vollständigen Port der Django-Vorlagensprache für das Djangode-Projekt von Simon Willisons durchgeführt (Dienstprogrammfunktionen für node.js, die einige nützliche Konzepte von Django ausleihen).
Es ist den Vorlagen von Django überhaupt nicht ähnlich, denn die Vorlagen von Django haben eine gute Dokumentation. EJS ist ein Kampf, um durchzukommen, und am Ende lesen Sie den Quellcode, um zu verstehen, was Ihnen zur Verfügung steht.
5
WARNUNG: JinJs wird nicht mehr gewartet. Es funktioniert immer noch, ist aber nicht mit der neuesten Version von Express kompatibel.
Sie könnten versuchen, Jinjs zu verwenden . Es ist eine Portierung des Jinja, eines sehr guten Python-Template-Systems. Sie können es mit npm wie folgt installieren:
Die Closure Templates von Google sind ein natives JavaScript-Template-System und passen scheinbar natürlich zu NodeJS. Hier finden Sie einige Anweisungen zur Integration.
Obwohl es hauptsächlich für den Browser entwickelt wurde, funktioniert es gut mit Jaxer und Rhino.
Ich kenne node.js noch nicht, aber wenn Sie einige JS und Funktionen im Speicher zwischenspeichern können, sollte die Geschwindigkeit noch beeindruckender sein.
Node.js versteht DOM nicht ... PURE verwendet das DOM, aber da es Strings daraus macht. Das ist interessant zu untersuchen. Entschuldigung für den Lärm.
Mic
2
Es gibt eine Portierung der Django-Template-Engine für JavaScript. Es wurde jedoch schon lange nicht mehr aktualisiert, verfügt jedoch möglicherweise noch über genügend Funktionen.
Versuchen Sie es auch mit Yajet . ;-) Es ist eine neue, die ich gestern veröffentlicht habe, aber ich benutze sie jetzt schon eine Weile und sie ist stabil und schnell (Vorlagen werden zu einer nativen JS-Funktion kompiliert).
Es hat IMO die bestmögliche Syntax für eine Template-Engine und einen umfangreichen Funktionsumfang trotz seiner geringen Codegröße (8,5 KB minimiert). Es enthält Anweisungen, mit denen Sie Bedingungen einführen, Arrays / Hashes iterieren, wiederverwendbare Vorlagenkomponenten definieren usw. können.
Interessante, schöne Arbeit Mischoo. Hat es einen Vorteil gegenüber EJS?
Trusktr
0
Ich habe hogan.js von Twitter gefunden und von Tim O'Reilly auf seiner Website empfohlen. Ich habe keine Best Practice damit, aber ich vertraue auf Twitter und O'Reilly. Du solltest es versuchen...
Ehrlich gesagt ist die beste und einfachste Template-Engine für Node.js (IMHO) Plates ( https://github.com/flatiron/plates ). Möglicherweise möchten Sie auch das Flatiron MVC-Framework für Node.js ( http://flatiron.org ) überprüfen .
Sie können dojox.dtl von DojoToolkit.org verwenden. Beachten Sie, dass Dojo 1.7 gut auf NodeJS ausgeführt werden kann und als serverseitige Bibliothek fungiert. Wenn Sie interessiert sind, kann ich Ihnen ein einfaches Beispiel geben.
Antworten:
Schauen Sie sich die Wiki-Seite zu Node js modules an. Sie haben alle Template-Engines aufgelistet , die node.js unterstützen.
quelle
Sie sollten in der Lage sein, mustache.js zu verwenden. Wenn es nicht funktioniert, senden Sie mir die Probleme und ich werde sie beheben, da ich sie sowieso in node.js verwenden werde.
http://github.com/janl/mustache.js
Ich weiß, dass es ohne DOM funktioniert, weil eine Reihe von CouchDB-Standalone-Apps es auf einem Spidermonkey-Ansichtsserver verwenden.
quelle
Wenn du haml magst, aber etwas noch besseres willst, schau auf http://jade-lang.com nach node, ich habe auch haml.js geschrieben :)
quelle
Es gibt ständig neue Template-Motoren.
underscore.js bietet js viel Unterstützung für funktionale Programmierung und verfügt über Vorlagen.
Und erst heute habe ich davon gehört: http://github.com/SamuraiJack/Shotenjin-Joosed
quelle
Sie sollten sich node-asyncEJS ansehen , das explizit so konzipiert ist, dass es die asynchrone Natur von node.js berücksichtigt. Es erlaubt sogar asynchrone Codeblöcke innerhalb der Vorlage.
Hier ein Beispiel aus der Dokumentation:
quelle
Sie können bartlos versuchen (es ist von Schweißnähten / Platten inspiriert):
Beispielsweise:
Ihre Vorlage:
Ausgabe:
quelle
Ich habe einige Arbeiten an einem ziemlich vollständigen Port der Django-Vorlagensprache für das Djangode-Projekt von Simon Willisons durchgeführt (Dienstprogrammfunktionen für node.js, die einige nützliche Konzepte von Django ausleihen).
Siehe die Dokumentation hier .
quelle
Ich verwende Twig mit Symfony und beschäftige mich jetzt mit node.js. Daher schaue ich auf https://github.com/justjohn/twig.js und https://github.com/paularmstrong/swig , die Sie verwenden werden wahrscheinlich wie wenn Sie Django verwenden.
quelle
Wenn Sie nach einem minimalistischen Ansatz für Vorlagen suchen, können Sie sich JSON Template ansehen .
Eine umfassendere Alternative ist EJS . Es ist ein bisschen ähnlicher wie etwas, das man von Django bekommen würde.
Ihr Kilometerstand kann für jeden dieser Punkte variieren. Sie sind für eine Browser-Javascript-Umgebung und nicht für Node.js konzipiert.
quelle
WARNUNG: JinJs wird nicht mehr gewartet. Es funktioniert immer noch, ist aber nicht mit der neuesten Version von Express kompatibel.
Sie könnten versuchen, Jinjs zu verwenden . Es ist eine Portierung des Jinja, eines sehr guten Python-Template-Systems. Sie können es mit npm wie folgt installieren:
in template.tpl:
in Ihrer template.js:
Die Ausgabe wird sein:
Wir entwickeln es aktiv weiter, eine gute Dokumentation sollte bald kommen.
quelle
haml ist eine gute Wahl für node.js.
http://github.com/creationix/haml-js
haml-js
html
quelle
Ich habe gute Dinge über {Staub} http://akdubya.github.com/dustjs/#dust gehört
quelle
Versuchen Sie "vash" - asp.net mvc wie die Rasierersyntax für node.js
https://github.com/kirbysayshi/Vash
auch zur Kasse: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
quelle
Die Closure Templates von Google sind ein natives JavaScript-Template-System und passen scheinbar natürlich zu NodeJS. Hier finden Sie einige Anweisungen zur Integration.
quelle
Hast du PURE ausprobiert ?
Wenn Sie es versuchen, können Sie Probleme im Forum veröffentlichen
Obwohl es hauptsächlich für den Browser entwickelt wurde, funktioniert es gut mit Jaxer und Rhino.
Ich kenne node.js noch nicht, aber wenn Sie einige JS und Funktionen im Speicher zwischenspeichern können, sollte die Geschwindigkeit noch beeindruckender sein.
quelle
Es gibt eine Portierung der Django-Template-Engine für JavaScript. Es wurde jedoch schon lange nicht mehr aktualisiert, verfügt jedoch möglicherweise noch über genügend Funktionen.
http://code.google.com/p/jtl-javascript-template/
quelle
Versuchen Sie es auch mit Yajet . ;-) Es ist eine neue, die ich gestern veröffentlicht habe, aber ich benutze sie jetzt schon eine Weile und sie ist stabil und schnell (Vorlagen werden zu einer nativen JS-Funktion kompiliert).
Es hat IMO die bestmögliche Syntax für eine Template-Engine und einen umfangreichen Funktionsumfang trotz seiner geringen Codegröße (8,5 KB minimiert). Es enthält Anweisungen, mit denen Sie Bedingungen einführen, Arrays / Hashes iterieren, wiederverwendbare Vorlagenkomponenten definieren usw. können.
quelle
Ich habe hogan.js von Twitter gefunden und von Tim O'Reilly auf seiner Website empfohlen. Ich habe keine Best Practice damit, aber ich vertraue auf Twitter und O'Reilly. Du solltest es versuchen...
quelle
Hier ist eine gute Bewertung mehrerer Engines: http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more
quelle
Ehrlich gesagt ist die beste und einfachste Template-Engine für Node.js (IMHO) Plates ( https://github.com/flatiron/plates ). Möglicherweise möchten Sie auch das Flatiron MVC-Framework für Node.js ( http://flatiron.org ) überprüfen .
quelle
Sie können dojox.dtl von DojoToolkit.org verwenden. Beachten Sie, dass Dojo 1.7 gut auf NodeJS ausgeführt werden kann und als serverseitige Bibliothek fungiert. Wenn Sie interessiert sind, kann ich Ihnen ein einfaches Beispiel geben.
quelle