我正在尝试使用Node.js构建一个完整的web应用程序。是否有一个模板引擎类似于(例如)Django模板引擎或类似的,至少允许你扩展基本模板?


当前回答

你应该看一看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>

其他回答

查看Node js模块wiki页面。他们列出了所有支持node.js的模板引擎。

我已经为Simon Willisons Django项目做了一些相当完整的Django模板语言移植工作(node.js的实用程序函数借用了Django的一些有用概念)。

请在这里查看文档。

你尝试过PURE吗?如果你尝试过,可以随时在论坛上发表你可能遇到的问题

虽然它主要是为浏览器设计的,但它与Jaxer和Rhino配合得很好。

我还不知道node.js,但如果你能在内存中缓存一些JS和函数,速度应该会更令人印象深刻。

尝试“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);

我在Symfony中使用Twig,现在正在尝试node.js,所以我正在寻找https://github.com/justjohn/twig.js和https://github.com/paularmstrong/swig,如果你使用django,你可能会喜欢。