Existe-t-il un moteur de modèle pour Node.js? [fermé]
271
J'expérimente avec la construction d'une application Web entière en utilisant Node.js. Existe-t-il un moteur de modèle similaire (par exemple) au moteur de modèle Django ou similaire qui vous permet au moins d'étendre les modèles de base?
Je viens de découvrir que le moteur JavaScript V8 est plus rapide que Ruby, PHP et Python. Incroyablement rapide pour un langage dynamique. Plus lent que Java et C #, cependant.
Nosredna
77
@Nosredna: Comment Java peut-il être plus rapide qu'autre chose?! ;)
Daniel Sloof
27
@Daniel Java est en fait assez rapide ces jours-ci, battant tout sauf Ada, C et C ++ dans les benchmarks Shootout de Debian.
Mentalikryst
20
Quiconque ne se soucie pas de la syntaxe, de la productivité et de tout autre chose que des performances devrait utiliser Raphters (framework web pour C)
Pablo B.
6
node.js ne concerne pas la langue. Tout dépend de la conception et de la façon dont js gère les E / S, ce qui est génial. Vous pourriez faire tourner rapidement les frameworks web ruby si vous repensiez ses bibliothèques d'E / S.
julx
Réponses:
166
Consultez la page wiki des modules Node js. Ils ont répertorié tous les moteurs de modèles prenant en charge node.js.
@ThomasPotaire Il est devenu obsolète car ils suggèrent d'utiliser la recherche npm à la place.
inf3rno
52
Vous devriez pouvoir utiliser moustache.js, si cela ne fonctionne pas, envoyez-moi les problèmes et je le réparerai car je suis sur le point de les utiliser dans node.js de toute façon.
Jade est plutôt cool. Je viens de commencer à l'utiliser, donc je ne peux pas parler de ses performances, mais j'aime la syntaxe. Et le support intégré dans Express est un plus.
broofa
3
les performances sont suffisantes, les modèles doivent quand même être mis en cache. De plus, n'oubliez pas de mettre à l'échelle horizontalement, pas verticalement, sinon vous pourriez tout aussi bien ne pas utiliser de moteur de modèle du tout et juste quelques fonctions / concats
tjholowaychuk
14
Il y a tout le temps de nouveaux moteurs de création de modèles.
underscore.js ajoute beaucoup de support de programmation fonctionnelle à js, et a des modèles.
Bravo pour underscore.js. Bibliothèque géniale, je l'utilise aussi bien pour mon côté client que pour le travail node.js. Leur moteur de modèle est basé sur le moteur JS Micro Templating de John Resig ( ejohn.org/blog/javascript-micro-templating ) que j'ai utilisé plusieurs fois auparavant. Afaik est votre meilleure option à ce stade lorsque vous travaillez avec node.js.
Felix Geisendörfer
2
Est-ce que l'un de ces éléments supporte l'héritage?
Vous devriez jeter un œil à node-asyncEJS , qui est explicitement conçu pour prendre en compte la nature asynchrone de node.js. Il autorise même des blocs de code asynchrones à l'intérieur du modèle.
Vous pouvez essayer sans barbe (il est inspiré par les soudures / plaques):
Par exemple:
{ 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>
Veuillez être plus descriptif dans votre réponse concernant votre code et le lien auquel vous avez fait référence. Référez: Comment répondre
Askmish
Serait intéressant, comment traiter réellement le fichier ou remplir des variables dans Node
Julian F. Weinert
6
J'ai fait un travail sur un portage assez complet du langage de modèle Django pour le projet djangode Simon Willisons (fonctions utilitaires pour node.js qui empruntent quelques concepts utiles à Django).
Ce n'est pas du tout similaire aux modèles de Django, car les modèles de Django ont une bonne documentation. EJS est une tâche difficile à franchir et vous finirez par lire son code source juste pour comprendre ce qui est à votre disposition.
5
AVERTISSEMENT: JinJs n'est plus maintenu. Il fonctionne toujours mais n'est pas compatible avec la dernière version d'express.
Vous pouvez essayer d'utiliser jinjs . C'est un portage de la Jinja, un très bon système de création de modèles en Python. Vous pouvez l'installer avec npm comme ceci:
Les modèles de fermeture de Google sont un système de modèles nativement JavaScript et un ajustement apparemment naturel avec NodeJS. Voici quelques instructions pour les intégrer.
Avez-vous essayé PURE ? Si vous essayez, n'hésitez pas à publier tout problème que vous pourriez rencontrer sur le forum
Bien qu'il ait été principalement conçu pour le navigateur, il fonctionne bien avec Jaxer et Rhino.
Je ne connais pas encore node.js mais si vous pouvez mettre en cache certains JS et fonctions en mémoire, la vitesse devrait être encore plus impressionnante.
Node.js ne comprend pas DOM ... PURE utilise le DOM, mais puisqu'il en fait des chaînes. C'est intéressant à étudier. Désolé pour le bruit.
Mic
2
Il existe un portage du moteur de gabarit Django vers JavaScript. Cependant, il n'a pas été mis à jour depuis longtemps, mais il peut encore avoir suffisamment de fonctionnalités.
Essayez également Yajet . ;-) C'est une nouvelle que je viens de publier hier, mais je l'utilise depuis un moment maintenant et elle est stable et rapide (les modèles sont compilés en fonction JS native).
Il a IMO la meilleure syntaxe possible pour un moteur de modèle, et un ensemble de fonctionnalités riche malgré sa petite taille de code (8.5K minifié). Il a des directives qui vous permettent d'introduire des conditions, d'itérer des tableaux / hachages, de définir des composants de modèle réutilisables, etc.
Mishoo de travail intéressant et agréable. At-il un avantage sur EJS?
trusktr
0
J'ai trouvé hogan.js sur Twitter et recommandé par Tim O'Reilly sur son site. Je n'ai aucune meilleure pratique avec cela, mais j'ai confiance sur Twitter et O'Reilly. Tu devrais essayer...
Honnêtement, le moteur de modèle le meilleur et le plus simple pour Node.js est (IMHO) Plates ( https://github.com/flatiron/plates ). Vous pouvez également consulter le framework Flatiron MVC pour Node.js ( http://flatiron.org ).
Vous pouvez utiliser dojox.dtl de DojoToolkit.org. Notez que dojo 1.7 peut bien fonctionner sur NodeJS et fonctionner comme une bibliothèque côté serveur. Si vous êtes intéressé, je peux vous donner un exemple simple.
Réponses:
Consultez la page wiki des modules Node js. Ils ont répertorié tous les moteurs de modèles prenant en charge node.js.
la source
Vous devriez pouvoir utiliser moustache.js, si cela ne fonctionne pas, envoyez-moi les problèmes et je le réparerai car je suis sur le point de les utiliser dans node.js de toute façon.
http://github.com/janl/mustache.js
Je sais que cela fonctionne sans DOM car un tas d'applications autonomes CouchDB l'utilisent dans un serveur de vue Spidermonkey.
la source
Si vous aimez le haml, mais que vous voulez quelque chose de mieux, consultez http://jade-lang.com pour le nœud, j'ai également écrit haml.js :)
la source
Il y a tout le temps de nouveaux moteurs de création de modèles.
underscore.js ajoute beaucoup de support de programmation fonctionnelle à js, et a des modèles.
Et aujourd'hui, j'en ai entendu parler: http://github.com/SamuraiJack/Shotenjin-Joosed
la source
Vous devriez jeter un œil à node-asyncEJS , qui est explicitement conçu pour prendre en compte la nature asynchrone de node.js. Il autorise même des blocs de code asynchrones à l'intérieur du modèle.
Voici un exemple de la documentation:
la source
Vous pouvez essayer sans barbe (il est inspiré par les soudures / plaques):
Par exemple:
Votre modèle:
Production:
la source
J'ai fait un travail sur un portage assez complet du langage de modèle Django pour le projet djangode Simon Willisons (fonctions utilitaires pour node.js qui empruntent quelques concepts utiles à Django).
Voir la documentation ici .
la source
J'utilise Twig avec Symfony et je joue maintenant dans node.js, donc je regarde https://github.com/justjohn/twig.js et https://github.com/paularmstrong/swig , que vous allez probablement comme si vous utilisez django.
la source
Si vous recherchez une approche minimaliste des modèles, vous pouvez consulter le modèle JSON .
Une alternative plus complète est EJS . C'est un peu plus semblable à quelque chose que vous obtiendriez de Django.
Votre kilométrage peut varier pour chacun d'entre eux - ils sont conçus pour un environnement Javascript de navigateur, et non Node.js.
la source
AVERTISSEMENT: JinJs n'est plus maintenu. Il fonctionne toujours mais n'est pas compatible avec la dernière version d'express.
Vous pouvez essayer d'utiliser jinjs . C'est un portage de la Jinja, un très bon système de création de modèles en Python. Vous pouvez l'installer avec npm comme ceci:
dans template.tpl:
dans votre template.js:
La sortie sera:
Nous le développons activement, une bonne documentation devrait bientôt arriver.
la source
haml est un bon choix pour node.js
http://github.com/creationix/haml-js
haml-js
html
la source
J'ai entendu de bonnes choses à propos de {dust} http://akdubya.github.com/dustjs/#dust
la source
Essayez "vash" - asp.net mvc comme la syntaxe de rasoir pour node.js
https://github.com/kirbysayshi/Vash
consultez également: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
la source
Les modèles de fermeture de Google sont un système de modèles nativement JavaScript et un ajustement apparemment naturel avec NodeJS. Voici quelques instructions pour les intégrer.
la source
Avez-vous essayé PURE ?
Si vous essayez, n'hésitez pas à publier tout problème que vous pourriez rencontrer sur le forum
Bien qu'il ait été principalement conçu pour le navigateur, il fonctionne bien avec Jaxer et Rhino.
Je ne connais pas encore node.js mais si vous pouvez mettre en cache certains JS et fonctions en mémoire, la vitesse devrait être encore plus impressionnante.
la source
Il existe un portage du moteur de gabarit Django vers JavaScript. Cependant, il n'a pas été mis à jour depuis longtemps, mais il peut encore avoir suffisamment de fonctionnalités.
http://code.google.com/p/jtl-javascript-template/
la source
Essayez également Yajet . ;-) C'est une nouvelle que je viens de publier hier, mais je l'utilise depuis un moment maintenant et elle est stable et rapide (les modèles sont compilés en fonction JS native).
Il a IMO la meilleure syntaxe possible pour un moteur de modèle, et un ensemble de fonctionnalités riche malgré sa petite taille de code (8.5K minifié). Il a des directives qui vous permettent d'introduire des conditions, d'itérer des tableaux / hachages, de définir des composants de modèle réutilisables, etc.
la source
J'ai trouvé hogan.js sur Twitter et recommandé par Tim O'Reilly sur son site. Je n'ai aucune meilleure pratique avec cela, mais j'ai confiance sur Twitter et O'Reilly. Tu devrais essayer...
la source
Voici une bonne évaluation de plusieurs moteurs http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more
la source
Honnêtement, le moteur de modèle le meilleur et le plus simple pour Node.js est (IMHO) Plates ( https://github.com/flatiron/plates ). Vous pouvez également consulter le framework Flatiron MVC pour Node.js ( http://flatiron.org ).
la source
Vous pouvez utiliser dojox.dtl de DojoToolkit.org. Notez que dojo 1.7 peut bien fonctionner sur NodeJS et fonctionner comme une bibliothèque côté serveur. Si vous êtes intéressé, je peux vous donner un exemple simple.
la source