我正在尝试使用Node.js构建一个完整的web应用程序。是否有一个模板引擎类似于(例如)Django模板引擎或类似的,至少允许你扩展基本模板?
当前回答
警告:JinJs不再被维护。它仍在工作,但与最新版本的express不兼容。
你可以试着用jinj。它是Jinja的一个端口,一个非常好的Python模板系统。你可以像这样用npm安装它:
npm install jinjs
在模板。tpl:
I say : "{{ sentence }}"
在你的template.js中:
jinjs = require('jinjs');
jinjs.registerExtension('.tpl');
tpl = require('./template');
str = tpl.render ({sentence : 'Hello, World!'});
console.log(str);
输出将是:
I say : "Hello, World!"
我们正在积极开发,一个好的文档应该很快就会出来。
其他回答
如果您正在寻找一种极简的模板方法,您可以查看JSON Template。
一个功能更全的替代方案是EJS。它有点类似于从Django中得到的东西。
你的里程可能因人而异——它们是为浏览器Javascript环境设计的,而不是Node.js。
你可以试试无胡子(它的灵感来自焊接/板):
例如:
{ 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 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>
输出:
<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>
有一个Django模板引擎到JavaScript的端口。然而,它没有更新很长一段时间,但它可能仍然有足够的功能。
http://code.google.com/p/jtl-javascript-template/
尝试“vash”- net mvc类似razor语法的node.js
https://github.com/kirbysayshi/Vash
也可以查看: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);
一直都有新的模板引擎。
js为js添加了大量的函数式编程支持,并且有模板。
就在今天,我听说了这个:http://github.com/SamuraiJack/Shotenjin-Joosed
推荐文章
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError:
- [].slice的解释。调用javascript?
- jQuery日期/时间选择器
- 我如何预填充一个jQuery Datepicker文本框与今天的日期?
- npm犯错!代码UNABLE_TO_GET_ISSUER_CERT_LOCALLY
- 数组的indexOf函数和findIndex函数的区别
- jQuery添加必要的输入字段