Gibt es eine Template-Engine für Node.js?

Ich experimentiere mit dem Erstellen einer vollständigen Webanwendung mit Node.js. Gibt es eine Vorlagen-Engine, die der Django-Vorlagen-Engine oder ähnlichem ähnlich ist, mit der Sie zumindest Basisvorlagen erweitern können?

Schauen Sie sich die Wiki-Seite Knoten js Module an. Sie haben alle Templating-Engines aufgeführt, die node.js unterstützen.

Sie sollten in der Lage sein, mustache.js zu verwenden, wenn es nicht funktioniert, senden Sie mir die Probleme und ich werde es behoben, weil ich sie sowieso in node.js verwenden werde.

http://github.com/janl/mustache.js

Ich weiß, dass es ohne ein DOM funktioniert, da eine Reihe von CouchDB-Standalone-Apps es auf einem Spidermonkey-View-Server verwenden.

Wenn Sie haml mögen, aber etwas noch besser wollen, schauen Sie sich http://jade-lang.com für node an, ich habe haml.js auch geschrieben 🙂

Es gibt immer neue Template-Engines.

underscore.js fügt js eine Menge Unterstützung für die funktionale Programmierung hinzu und hat Templating.

Und gerade heute habe ich davon gehört: http://github.com/SamuraiJack/Shotenjin-Joosed

Sie sollten sich node-asyncEJS ansehen , die explizit dafür ausgelegt ist, die asynchrone Natur von node.js zu berücksichtigen. Es erlaubt sogar asynchrone Code-Blöcke innerhalb der Vorlage.

Hier ein Beispiel aus der Dokumentation:

  < % ctx.hello = "World"; %> < %= "Hello " + ctx.hello %>   

< %? setTimeout(function () { res.print("Async Header"); res.finish(); }, 2000) %>

< %? setTimeout(function () { res.print("Body"); res.finish(); }, 1000) %>

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..."} ] } } 

Ihre Vorlage:

 

Ausgabe:

 

Next generation templating: Start shaving!

TL;DR You should really check out beardless!

Hey cool!

Really gotta check that out...

Ich habe an einem ziemlich vollständigen Port der Django-Template-Sprache für Simon Willisons djangode project gearbeitet (Utilities-functionen für node.js, die einige nützliche Konzepte aus Django entlocken ).

Siehe die Dokumentation hier .

Ich benutze Twig mit Symfony und arbeite jetzt in node.js, also schaue ich auf https://github.com/justjohn/twig.js und https://github.com/paularmstrong/swig , was du auch tun wirst wahrscheinlich, wenn du Django benutzt.

Wenn Sie nach einem minimalistischen Ansatz für Vorlagen suchen, können Sie sich das JSON-Template ansehen .

Eine vollere Alternative ist EJS . Es ist ein bisschen mehr ähnlich zu etwas, das Sie von Django bekommen würden.

Ihr Kilometerstand kann für jeden von diesen variieren – sie sind für eine JavaScript-Umgebung in einem Browser ausgelegt und nicht für Node.js.

WARNUNG: JinJs wird nicht mehr gewartet. Es funktioniert immer noch, aber nicht kompatibel mit der neuesten Version von Express.

Sie könnten versuchen, Jinjs zu verwenden . Es ist ein Hafen der Jinja, ein sehr gutes Python Templating System. Sie können es mit npm wie folgt installieren:

 npm install jinjs 

in template.tpl:

 I say : "{{ sentence }}" 

in deiner Vorlage.js:

 jinjs = require('jinjs'); jinjs.registerExtension('.tpl'); tpl = require('./template'); str = tpl.render ({sentence : 'Hello, World!'}); console.log(str); 

Die Ausgabe wird sein:

 I say : "Hello, World!" 

Wir entwickeln es aktiv, eine gute Dokumentation sollte bald kommen.

haml ist eine gute Wahl für node.js

http://github.com/creationix/haml-js

haml-js

 !!! XML !!! strict %html{ xmlns: "http://www.w3.org/1999/xhtml" } %head %title Sample haml template %body .profile .left.column #date= print_date() #address= current_user.address .right.column #email= current_user.email #bio= current_user.bio 

html

 < ?xml version='1.0' encoding='utf-8' ?> < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Sample haml template 
January 1, 2009
Richardson, TX
tim@creationix.com
Experienced software professional...

Ich habe gute Dinge über {Staub} http://akdubya.github.com/dustjs/#dust gehört

Versuchen Sie “vash” – asp.net mvc wie 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


 // sample var tmpl = vash.compile('
@model.a,@model.b
'); var html = tmpl({"a": "hello", "b": "world"}); res.write(html);

Google Closure Templates ist ein nativ-JavaScript-Template-System und eine scheinbar natürliche Anpassung an NodeJS. Hier sind einige statementen für die Integration.

Hast du PURE versucht?
Wenn Sie es versuchen, zögern Sie nicht, irgendwelche Probleme, die Sie im Forum begegnen

Während 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 functionen im Speicher zwischenspeichern können, sollte die Geschwindigkeit noch beeindruckender sein.

Es gibt einen Port der Django Templating Engine zu JavaScript. Es wurde jedoch für eine lange Zeit nicht aktualisiert, aber es kann immer noch genug functionen haben.

http://code.google.com/p/jtl-javascript-template/

Versuchen Sie auch Yajet . 😉 Es ist ein neues, das ich gerade gestern veröffentlicht habe, aber ich benutze es jetzt für eine Weile und es ist stabil und schnell (Vorlagen werden zu einer nativen JS-function kompiliert).

Es hat IMO die beste mögliche Syntax für eine Vorlage-Engine und eine reiche Feature-Set trotz seiner kleinen Code-Größe (8.5K minimiert). Es verfügt über statementen, mit denen Sie Bedingungen einführen, Arrays / Hashes iterieren, wiederverwendbare Vorlagenkomponenten definieren usw.

Ich habe hogan.js von Twitter gefunden und von Tim O’Reilly auf seiner Seite empfohlen. Ich habe keine Best Practice, 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 ). Sie können auch das Flatiron MVC-Framework für Node.js ( http://flatiron.org ) ausprobieren .

Sie können dojox.dtl von DojoToolkit.org verwenden. Beachten Sie, dass Dojo 1.7 problemlos auf NodeJS ausgeführt werden und als serverseitige Bibliothek ausgeführt werden kann. Wenn Sie interessiert sind, kann ich Ihnen ein einfaches Beispiel geben.