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 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?
Jawaban:
Lihat halaman wiki Node js modules. Mereka telah membuat daftar semua mesin templating yang mendukung node.js.
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.
Jika Anda suka haml, tetapi ingin sesuatu yang lebih baik lihat http://jade-lang.com untuk node, saya juga menulis haml.js :)
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
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:
<html>
<head>
<% ctx.hello = "World"; %>
<title><%= "Hello " + ctx.hello %></title>
</head>
<body>
<h1><%? setTimeout(function () { res.print("Async Header"); res.finish(); }, 2000) %></h1>
<p><%? setTimeout(function () { res.print("Body"); res.finish(); }, 1000) %></p>
</body>
</html>
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..."} ]
}
}
Template Anda:
<h1 data-template="post.title"></h1>
<p data-template="post.text"></p>
<div>
<div data-template="post.comments" class="comment">
<p data-template="post.comments.text"></p>
</div>
</div>
Keluaran:
<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>
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 .
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.
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.
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:
npm install jinjs
di template.tpl:
I say : "{{ sentence }}"
di templat.js Anda:
jinjs = require('jinjs');
jinjs.registerExtension('.tpl');
tpl = require('./template');
str = tpl.render ({sentence : 'Hello, World!'});
console.log(str);
Outputnya adalah:
I say : "Hello, World!"
Kami secara aktif mengembangkannya, dokumentasi yang baik harus segera hadir.
haml adalah pilihan yang baik untuk 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">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sample haml template
</title></head><body><div class="profile"><div class="left column"><div id="date">January 1, 2009
</div><div id="address">Richardson, TX
</div></div><div class="right column"><div id="email">tim@creationix.com
</div><div id="bio">Experienced software professional...
</div></div></div></body></html>
Saya pernah mendengar hal-hal baik tentang {dust} http://akdubya.github.com/dustjs/#dust
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
// sample
var tmpl = vash.compile('<hr/>@model.a,@model.b<hr/>');
var html = tmpl({"a": "hello", "b": "world"});
res.write(html);
Google's Closure Templates adalah sistem templating asli-JavaScript dan cocok secara alami dengan NodeJS. Berikut adalah beberapa instruksi untuk mengintegrasikannya.
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.
Ada port mesin templating Django ke JavaScript. Namun, ini belum diperbarui untuk waktu yang lama tetapi mungkin masih memiliki fitur yang cukup.
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.
Berikut adalah evaluasi yang baik dari beberapa mesin http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more-
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 ).