我正在尝试使用Node.js构建一个完整的web应用程序。是否有一个模板引擎类似于(例如)Django模板引擎或类似的,至少允许你扩展基本模板?
当前回答
谷歌的闭包模板是一个原生javascript模板系统,看起来很适合NodeJS。下面是对它们进行积分的一些说明。
其他回答
你应该看一看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>
警告:JinJs不再被维护。它仍在工作,但与最新版本的express不兼容。
你可以试着用jinj。它是Jinja的一个端口,一个非常好的Python模板系统。你可以像这样用npm安装它:
npm install jinjs
在模板。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!"
我们正在积极开发,一个好的文档应该很快就会出来。
老实说,Node.js最好、最简单的模板引擎是(IMHO) Plates (https://github.com/flatiron/plates)。你可能还想看看用于Node.js的Flatiron MVC框架(http://flatiron.org)。
我从Twitter上找到了hogan.js, Tim O'Reilly在他的网站上推荐了hogan.js。我在这方面没有最佳实践,但我相信推特和奥莱利。你应该试试……
我已经为Simon Willisons Django项目做了一些相当完整的Django模板语言移植工作(node.js的实用程序函数借用了Django的一些有用概念)。
请在这里查看文档。