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


当前回答

你应该能够使用mustache.js,如果它不工作,请把问题发给我,我会把它修复,因为我即将在node.js中使用它们。

http://github.com/janl/mustache.js

我知道它可以在没有DOM的情况下工作,因为很多CouchDB独立应用程序在Spidermonkey视图服务器中使用它。

其他回答

老实说,Node.js最好、最简单的模板引擎是(IMHO) Plates (https://github.com/flatiron/plates)。你可能还想看看用于Node.js的Flatiron MVC框架(http://flatiron.org)。

我听说过关于{dust} http://akdubya.github.com/dustjs/#dust的好事情

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

如果您正在寻找一种极简的模板方法,您可以查看JSON Template。

一个功能更全的替代方案是EJS。它有点类似于从Django中得到的东西。

你的里程可能因人而异——它们是为浏览器Javascript环境设计的,而不是Node.js。

如果你喜欢haml,但想要更好的东西,请检查http://jade-lang.com的节点,我也写了haml.js:)