是否有Node.js的模板引擎?[关闭]

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

小小Gil2020/03/19 12:39:32

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

Itachi小宇宙2020/03/19 12:39:32
猴子Sam2020/03/19 12:39:32

您可以使用DojoToolkit.org的dojox.dtl。请注意,dojo 1.7可以很好地在NodeJS上运行,并可以用作服务器端库。如果您有兴趣,我可以举一个简单的例子。

Harry理查德2020/03/19 12:39:32

也尝试Yajet;-)这是我昨天发布的一个新版本,但是我已经使用了一段时间,并且它稳定且快速(模板被编译为本地JS函数)。

它具有IMO最佳的模板引擎语法,并且具有丰富的功能集,尽管它的代码尺寸很小(最小8.5K)。它具有允许您引入条件,迭代数组/哈希,定义可重用模板组件等的指令。

小小Itachi2020/03/19 12:39:31

Django模板引擎的一个端口可以连接JavaScript。但是,它已经很长时间没有更新,但是它可能仍然具有足够的功能。

http://code.google.com/p/jtl-javascript-template/

泡芙Green2020/03/19 12:39:31

您尝试过PURE吗?
如果您尝试一下,请随时在论坛上发布可能遇到的任何麻烦

尽管它最初是为浏览器设计的,但它与Jaxer和Rhino一起很好地工作。

我还不知道node.js,但是如果您可以在内存中缓存一些JS和函数,那么速度应该会更高。

Gil斯丁2020/03/19 12:39:31

Google的Closure Templates是一个本机JavaScript模板系统,与NodeJS看起来很自然。以下是一些有关集成它们的说明。

猪猪小小2020/03/19 12:39:31

我已经为Simon Willisons djangode项目的Django模板语言的一个相当完整的端口做过一些工作(node.js的实用程序功能借鉴了Django的一些有用概念)。

请参阅此处的文档

GreenGil2020/03/19 12:39:31

我用树枝Symfony和我现在在node.js的涉足,所以我期待在https://github.com/justjohn/twig.jshttps://github.com/paularmstrong/swig,你会大概就像您使用django。

西门达蒙2020/03/19 12:39:31

如果您正在寻找模板的极简主义方法,则可以查看JSON Template

功能更全的替代方法是EJS它与您从Django获得的东西有点相似。

每种情况下,您的里程可能会有所不同-它们是针对浏览器Javascript环境而非Node.js设计的。

Jim小哥GO2020/03/19 12:39:31

我听说过有关{dust}的好消息http://akdubya.github.com/dustjs/#dust

武藏2020/03/19 12:39:31

您可以尝试无须胡须(它受焊缝/板的启发):

例如:

{ 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>
十三Mandy2020/03/19 12:39:31

您应该看一下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>
StafanTony2020/03/19 12:39:31

一直都有新的模板引擎。

underscore.js为js添加了许多功能性编程支持,并具有模板功能。

就在今天,我听说了这一点:http : //github.com/SamuraiJack/Shotenjin-Joosed

猴子Gil2020/03/19 12:39:31

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

米亚Harry2020/03/19 12:39:31

如果您喜欢haml,但想要更好的东西,请访问http://jade-lang.com以获得节点,我也写了haml.js :)

Sam猪猪2020/03/19 12:39:31

您应该能够使用mustache.js,如果无法正常工作,请向我发送问题,并且会尽快解决,因为无论如何我都打算在node.js中使用它们。

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

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