我正在尝试使用Node.js构建一个完整的web应用程序。是否有一个模板引擎类似于(例如)Django模板引擎或类似的,至少允许你扩展基本模板?
当前回答
你尝试过PURE吗?如果你尝试过,可以随时在论坛上发表你可能遇到的问题
虽然它主要是为浏览器设计的,但它与Jaxer和Rhino配合得很好。
我还不知道node.js,但如果你能在内存中缓存一些JS和函数,速度应该会更令人印象深刻。
其他回答
这里有几个很好的评估引擎 http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more
如果您正在寻找一种极简的模板方法,您可以查看JSON Template。
一个功能更全的替代方案是EJS。它有点类似于从Django中得到的东西。
你的里程可能因人而异——它们是为浏览器Javascript环境设计的,而不是Node.js。
也试试Yajet吧。;-)这是我昨天刚刚发布的一个新版本,但我现在已经使用了一段时间,它稳定而快速(模板被编译为原生JS函数)。
对于模板引擎来说,它具有IMO最好的语法,尽管代码大小较小(减小了8.5K),但功能集丰富。它的指令允许你引入条件,迭代数组/哈希,定义可重用的模板组件等。
有一个Django模板引擎到JavaScript的端口。然而,它没有更新很长一段时间,但它可能仍然有足够的功能。
http://code.google.com/p/jtl-javascript-template/
你应该看一看node-asyncEJS,它的设计明确考虑了node.js的异步特性。它甚至允许在模板中使用异步代码块。
下面是一个文档示例:
<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>