Saya bereksperimen dengan membangun seluruh aplikasi web menggunakan Node.js. Apakah ada mesin template yang mirip dengan (misalnya) mesin template Django atau sejenisnya yang setidaknya memungkinkan Anda untuk memperpanjang template dasar?
Saya baru tahu bahwa mesin JavaScript V8 lebih cepat daripada Ruby, PHP, dan Python. Sangat cepat untuk bahasa yang dinamis. Lebih lambat dari Java dan C #.
Nosredna
77
@Nosredna: Bagaimana mungkin Java bisa lebih cepat dari apapun ?! ;)
Daniel Sloof
27
@Daniel Java sebenarnya cukup cepat akhir-akhir ini, mengalahkan segalanya kecuali Ada, C dan C ++ di tolok ukur baku tembak Debian.
Mentalikryst
20
Siapa pun yang tidak peduli dengan sintaks, produktivitas, dan apa pun selain kinerja, harus menggunakan Raphters (kerangka kerja web untuk C)
Pablo B.
6
node.js bukan tentang bahasa. Ini benar-benar tentang desain dan cara js menangani IO, yang brilian. Anda bisa membuat kerangka web ruby berjalan cepat jika Anda mendesain ulang itu perpustakaan IO.
julx
Jawaban:
166
Lihat halaman wiki Node js modules. Mereka telah membuat daftar semua mesin templating yang mendukung node.js.
@ThomasPotaire Menjadi usang karena mereka menyarankan untuk menggunakan pencarian npm.
inf3rno
52
Anda harus dapat menggunakan kumis.js, jika tidak berhasil kirimi saya masalah dan saya akan memperbaikinya karena saya akan menggunakannya di node.js.
Jade cukup keren. Saya baru saja mulai menggunakannya, jadi saya tidak bisa bicara soal kinerjanya, tapi saya suka sintaksisnya. Dan dukungan bawaan di Express adalah nilai tambah.
broofa
3
kinerjanya cukup, template tetap harus di-cache. Plus ingat untuk skala secara horizontal, bukan vertikal, jika tidak, Anda mungkin tidak menggunakan mesin template sama sekali dan hanya beberapa fungsi / concats
tjholowaychuk
14
Ada mesin templating baru sepanjang waktu.
underscore.js menambahkan banyak dukungan pemrograman fungsional untuk js, dan telah templating.
Acungan jempol untuk underscore.js. Perpustakaan yang luar biasa, saya menggunakannya untuk sisi klien saya dan juga simpul.js. Mesin templating mereka didasarkan pada mesin Micro Templating JS Resig dari John Resig ( ejohn.org/blog/javascript-micro-templating ) yang telah saya gunakan berkali-kali sebelumnya. Afaik ini pilihan terbaik Anda saat ini ketika bekerja dengan node.js.
Anda harus melihat node-asyncEJS , yang secara eksplisit dirancang untuk mempertimbangkan sifat asinkron dari node.js. Bahkan memungkinkan blok kode async di dalam template.
Anda dapat mencoba berjanggut (terinspirasi oleh las / piring):
Sebagai contoh:
{ 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>
Harap lebih deskriptif dalam jawaban Anda tentang kode Anda dan tautan yang Anda tuju. Lihat: Cara Menjawab
askmish
Akan menarik, bagaimana sebenarnya memproses file atau mengisi variabel dalam Node
Julian F. Weinert
6
Saya telah melakukan beberapa pekerjaan pada port yang cukup lengkap dari bahasa template Django untuk proyek djangode Simon Willisons (Fungsi utilitas untuk node.js yang meminjam beberapa konsep yang berguna dari Django).
Sama sekali tidak mirip dengan template Django, karena satu template Django memiliki dokumentasi yang baik . EJS adalah perjuangan untuk melewati dan Anda akhirnya akan membaca kode sumbernya hanya untuk memahami apa yang tersedia untuk Anda.
5
PERINGATAN: JinJs tidak dipertahankan lagi. Ini masih berfungsi tetapi tidak kompatibel dengan versi express terbaru.
Anda bisa mencoba menggunakan jinjs . Ini adalah pelabuhan Jinja, sistem templating Python yang sangat bagus. Anda dapat menginstalnya dengan npm seperti ini:
Google's Closure Templates adalah sistem templating asli-JavaScript dan cocok secara alami dengan NodeJS. Berikut adalah beberapa instruksi untuk mengintegrasikannya.
Coba Yajet juga. ;-) Ini yang baru yang baru saja saya rilis kemarin, tapi saya menggunakannya untuk sementara waktu sekarang dan itu stabil dan cepat (template dikompilasi ke fungsi JS asli).
Ini memiliki IMO sintaks terbaik yang mungkin untuk mesin template, dan fitur yang kaya ditetapkan meskipun ukuran kode kecil (8,5K minified). Ini memiliki arahan yang memungkinkan Anda untuk memperkenalkan conditional, iterate array / hash, mendefinisikan komponen template yang dapat digunakan kembali dll.
Menarik, kerja bagus mishoo. Apakah ada keunggulan dibandingkan EJS?
trusktr
0
Saya menemukan hogan.js dari Twitter dan direkomendasikan oleh Tim O'Reilly di situsnya. Saya tidak punya praktik terbaik dengan itu, tapi saya percaya di Twitter dan O'Reilly. Kamu harus mencobanya...
Jujur, mesin template terbaik dan paling sederhana untuk Node.js adalah (IMHO) Pelat ( https://github.com/flatiron/plates ). Anda mungkin juga ingin memeriksa kerangka kerja Flatiron MVC untuk Node.js ( http://flatiron.org ).
Anda dapat menggunakan dojox.dtl dari DojoToolkit.org. Perhatikan bahwa dojo 1.7 dapat berjalan dengan baik di NodeJS dan berfungsi sebagai pustaka sisi server. Jika Anda tertarik, saya bisa memberikan contoh sederhana.
Jawaban:
Lihat halaman wiki Node js modules. Mereka telah membuat daftar semua mesin templating yang mendukung node.js.
sumber
Anda harus dapat menggunakan kumis.js, jika tidak berhasil kirimi saya masalah dan saya akan memperbaikinya karena saya akan menggunakannya di node.js.
http://github.com/janl/mustache.js
Saya tahu ini berfungsi tanpa DOM karena banyak aplikasi mandiri CouchDB menggunakannya di server tampilan Spidermonkey.
sumber
Jika Anda suka haml, tetapi ingin sesuatu yang lebih baik lihat http://jade-lang.com untuk node, saya juga menulis haml.js :)
sumber
Ada mesin templating baru sepanjang waktu.
underscore.js menambahkan banyak dukungan pemrograman fungsional untuk js, dan telah templating.
Dan baru hari ini saya mendengar tentang ini: http://github.com/SamuraiJack/Shotenjin-Joosed
sumber
Anda harus melihat node-asyncEJS , yang secara eksplisit dirancang untuk mempertimbangkan sifat asinkron dari node.js. Bahkan memungkinkan blok kode async di dalam template.
Berikut ini contoh formulir dokumentasi:
sumber
Anda dapat mencoba berjanggut (terinspirasi oleh las / piring):
Sebagai contoh:
Template Anda:
Keluaran:
sumber
Saya telah melakukan beberapa pekerjaan pada port yang cukup lengkap dari bahasa template Django untuk proyek djangode Simon Willisons (Fungsi utilitas untuk node.js yang meminjam beberapa konsep yang berguna dari Django).
Lihat dokumentasi di sini .
sumber
Saya menggunakan Twig dengan Symfony dan sekarang saya mencoba-coba node.js, jadi saya melihat https://github.com/justjohn/twig.js dan https://github.com/paularmstrong/swig , yang akan Anda gunakan mungkin seperti jika Anda menggunakan Django.
sumber
Jika Anda mencari pendekatan minimalis untuk templat, Anda dapat memeriksa JSON Templat .
Alternatif yang lebih berfitur lengkap adalah EJS . Ini sedikit lebih mirip dengan sesuatu yang Anda dapatkan dari Django.
Jarak tempuh Anda mungkin berbeda untuk masing-masing - mereka dirancang untuk lingkungan Javascript peramban, dan bukan Node.js.
sumber
PERINGATAN: JinJs tidak dipertahankan lagi. Ini masih berfungsi tetapi tidak kompatibel dengan versi express terbaru.
Anda bisa mencoba menggunakan jinjs . Ini adalah pelabuhan Jinja, sistem templating Python yang sangat bagus. Anda dapat menginstalnya dengan npm seperti ini:
di template.tpl:
di templat.js Anda:
Outputnya adalah:
Kami secara aktif mengembangkannya, dokumentasi yang baik harus segera hadir.
sumber
haml adalah pilihan yang baik untuk node.js
http://github.com/creationix/haml-js
haml-js
html
sumber
Saya pernah mendengar hal-hal baik tentang {dust} http://akdubya.github.com/dustjs/#dust
sumber
Coba "vash" - asp.net mvc seperti sintaks silet untuk node.js
https://github.com/kirbysayshi/Vash
juga checkout: http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
sumber
Google's Closure Templates adalah sistem templating asli-JavaScript dan cocok secara alami dengan NodeJS. Berikut adalah beberapa instruksi untuk mengintegrasikannya.
sumber
Apakah Anda mencoba PURE ?
Jika Anda mencobanya, jangan ragu untuk mengirim masalah yang mungkin Anda hadapi di forum
Sementara itu terutama dirancang untuk browser, ia bekerja dengan baik dengan Jaxer dan Rhino.
Saya belum tahu node.js tetapi jika Anda dapat men-cache beberapa JS dan fungsi dalam memori, kecepatannya akan lebih mengesankan.
sumber
Ada port mesin templating Django ke JavaScript. Namun, ini belum diperbarui untuk waktu yang lama tetapi mungkin masih memiliki fitur yang cukup.
http://code.google.com/p/jtl-javascript-template/
sumber
Coba Yajet juga. ;-) Ini yang baru yang baru saja saya rilis kemarin, tapi saya menggunakannya untuk sementara waktu sekarang dan itu stabil dan cepat (template dikompilasi ke fungsi JS asli).
Ini memiliki IMO sintaks terbaik yang mungkin untuk mesin template, dan fitur yang kaya ditetapkan meskipun ukuran kode kecil (8,5K minified). Ini memiliki arahan yang memungkinkan Anda untuk memperkenalkan conditional, iterate array / hash, mendefinisikan komponen template yang dapat digunakan kembali dll.
sumber
Saya menemukan hogan.js dari Twitter dan direkomendasikan oleh Tim O'Reilly di situsnya. Saya tidak punya praktik terbaik dengan itu, tapi saya percaya di Twitter dan O'Reilly. Kamu harus mencobanya...
sumber
Berikut adalah evaluasi yang baik dari beberapa mesin http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more-
sumber
Jujur, mesin template terbaik dan paling sederhana untuk Node.js adalah (IMHO) Pelat ( https://github.com/flatiron/plates ). Anda mungkin juga ingin memeriksa kerangka kerja Flatiron MVC untuk Node.js ( http://flatiron.org ).
sumber
Anda dapat menggunakan dojox.dtl dari DojoToolkit.org. Perhatikan bahwa dojo 1.7 dapat berjalan dengan baik di NodeJS dan berfungsi sebagai pustaka sisi server. Jika Anda tertarik, saya bisa memberikan contoh sederhana.
sumber