Javascript Node.js是否有模板引擎?
我正在尝试使用Node.js构建整个web应用程序。是否有一个模板引擎类似于(例如)Django模板引擎或类似的引擎,至少允许您扩展基本模板?如果您正在寻找模板的最低限度方法,您可以查看 一个功能更全面的替代方案是。它有点像你从Django那里得到的东西Javascript Node.js是否有模板引擎?,javascript,template-engine,node.js,Javascript,Template Engine,Node.js,我正在尝试使用Node.js构建整个web应用程序。是否有一个模板引擎类似于(例如)Django模板引擎或类似的引擎,至少允许您扩展基本模板?如果您正在寻找模板的最低限度方法,您可以查看 一个功能更全面的替代方案是。它有点像你从Django那里得到的东西 您的里程数可能会有所不同-它们是为浏览器Javascript环境而设计的,而不是Node.js。一直都有新的模板引擎 Underline.js为js添加了很多函数式编程支持,并提供了模板 就在今天,我听说了这件事:你试过了吗?如果你试过,请随时
您的里程数可能会有所不同-它们是为浏览器Javascript环境而设计的,而不是Node.js。一直都有新的模板引擎 Underline.js为js添加了很多函数式编程支持,并提供了模板 就在今天,我听说了这件事:你试过了吗?
如果你试过,请随时发布你在网站上可能遇到的任何问题 虽然它最初是为浏览器设计的,但它与Jaxer和Rhino配合得很好
我还不知道node.js,但如果你能在内存中缓存一些js和函数,速度应该会更惊人。你应该能够使用mustache.js,如果它不起作用,请将问题发送给我,我会解决,因为我将在node.js中使用它们
我知道它在没有DOM的情况下工作,因为许多CouchDB独立应用程序正在Spidermonkey视图服务器中使用它。有一个Django模板引擎到JavaScript的端口。然而,它已经很久没有更新了,但它可能仍然有足够的功能 您应该看一看,它的设计明确考虑了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>
我为Simon Willison开发了一个相当完整的Django模板语言端口(node.js的实用程序函数,借用了Django的一些有用概念)
请参阅文档。也可以尝试。;-)这是我昨天刚刚发布的一个新版本,但我现在使用它有一段时间了,而且它稳定且快速(模板被编译为原生JS函数)
它拥有最好的模板引擎语法和丰富的功能集,尽管它的代码很小(缩小了8.5K)。它有一些指令,允许您引入条件、迭代数组/散列、定义可重用的模板组件等。如果您喜欢haml,但想要更好地检查node,我还编写了haml.js:)Google的闭包模板是一个本机JavaScript模板系统,似乎很适合NodeJS。用于集成它们。haml是node.js的良好选择 haml js
!!! XML
!!! strict
%html{ xmlns: "http://www.w3.org/1999/xhtml" }
%head
%title Sample haml template
%body
.profile
.left.column
#date= print_date()
#address= current_user.address
.right.column
#email= current_user.email
#bio= current_user.bio
html
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sample haml template
</title></head><body><div class="profile"><div class="left column"><div id="date">January 1, 2009
</div><div id="address">Richardson, TX
</div></div><div class="right column"><div id="email">tim@creationix.com
</div><div id="bio">Experienced software professional...
</div></div></div></body></html>
haml模板示例
2009年1月1日
德克萨斯州理查森
tim@creationix.com
经验丰富的软件专业人士。。。
查看节点js模块wiki页面。他们列出了所有支持node.js的节点。我听说了{dust}警告:JinJs不再维护。它仍在工作,但与最新版本的express不兼容。
你可以试试使用。它是Jinja的一个端口,是一个非常好的Python模板系统。您可以使用npm安装它,如下所示:
npm install jinjs
在template.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!"
我们正在积极开发,很快就会有一份好的文档。您可以使用DojoToolkit.org的dojox.dtl。请注意,Dojo1.7可以很好地在NodeJ上运行,并作为服务器端库执行。如果你感兴趣,我可以给你一个简单的例子。试试node.js的类似于asp.net mvc的razor语法
!!! XML
!!! strict
%html{ xmlns: "http://www.w3.org/1999/xhtml" }
%head
%title Sample haml template
%body
.profile
.left.column
#date= print_date()
#address= current_user.address
.right.column
#email= current_user.email
#bio= current_user.bio
还包括结帐:
//示例
var tmpl=vash.compile('
@model.a,@model.b
');
var html=tmpl({“a”:“hello”,“b”:“world”});
res.write(html);
我从Twitter上找到了Tim O'Reilly在他的网站上推荐的。我没有最佳实践,但我信任推特和O'Reilly。你应该试试……这是对几种发动机的一个很好的评估
我将Twig与Symfony一起使用,现在我正在涉猎node.js,因此我正在研究和,如果您使用django,您可能会喜欢它。老实说,node.js最好、最简单的模板引擎是(IMHO)Plates()。您可能还想查看Node.js()的Flatiron MVC框架。您可以尝试(它的灵感来自焊接/板材): 例如:
{ 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>
下一代模板:开始剃须!
TL;医生,你真的应该检查一下无须
嘿,酷
真的要检查一下
我刚刚发现JavaScript V8引擎比Ruby、PHP和Python更快。对于动态语言来说,速度惊人。不过比Java和C#慢。@Nosredna:Java怎么可能比任何东西都快呢?!)@丹尼尔java实际上很快,在Debian的射击基准测试中击败了艾达、C和C++,但是任何人都不关心语法、生产力和其他性能,而应该使用(Web框架C)NoDE.JS不是语言。这完全是关于设计和js处理IO的方式,这是非常棒的。如果重新设计ruby的IO库,可以让ruby web框架快速运行。很棒的库,我在客户端和node.js工作中都使用它。他们的模板引擎是基于John Resig的JS Micro模板引擎()的,我以前使用过很多次。在使用node.js时,这是你最好的选择。这些支持继承吗?@Nick jinjs似乎支持继承,请参见第一行:node.js不理解DOM。。。纯粹使用DOM,但因为它会生成字符串。这是国际米兰