用于Express的胡须(类似)模板引擎?

Express(node.js)是否有一个基于Mustache的模板引擎,或者使用类似的语法?

所有我能find的是hamljadeejsjquery templates和一个基于CoffeeScript(我写的纯JS)。

我想写“正常”的HTML,所以只有ejsjqtpl会适合。 我已经使用backbone mustache ,所以最好也在服务器端使用Node.js

您可以按照Express手册将Mustache添加为渲染引擎:

查看文件名的格式为“。”,其中是需要的模块名称。 例如,视图layout.ejs将告诉视图系统> require('ejs'),被加载的模块必须导出方法exports.compile(str,> options),并返回一个Function以符合Express。

编辑:从使用下的胡子手册 :

下面是如何使用mustache.js的简单示例:

 var view = { title: "Joe", calc: function () { return 2 + 4; } }; var output = Mustache.render("{{title}} spends {{calc}}", view); 

在这个例子中,Mustache.render函数有两个参数:1)mustache>模板和2)包含渲染模板所需的数据和代码的视图对象。

从上面我怀疑你可以出口Mustache.render,但我没有testing它。 用作数据的对象文字看起来是一样的,但是如果它们碰巧不一样,那么你可以把Mustache.render包装成一个正确格式的函数。

编辑:Xomby的包装链接包含一个如何包装的句柄明确的例子,胡须应该是类似的。

试试Hogan.js http://twitter.github.com/hogan.js/

我认为这是Twitter和LinkedIn在生产中所使用的。

只是偶然发现了这个古老的线索,但没有人提到过整合.js,这似乎是Express 3下的“正确”方式(参考http://expressjs.com/faq.html )。 它还提供了一个简单的方法来切换/实验模板系统。

这是一个简单的例子 – http://invitingthebell.com/2012/12/24/mustache-templates-in-express-3-0/

代码,以防万一它消失了:

 var express = require('express') , cons = require('consolidate') , app = express(); // assign the mustache engine to .html files app.engine('html', cons.mustache); // set .html as the default extension app.set('view engine', 'html'); app.set('views', __dirname + '/views'); // test mustache app.get('/', function(req, res){ var viewdata = { 'test' : 'Hey now.'}; res.render('index', viewdata); }); app.listen(3000); 

views目录中的index.html文件:

 <html> <head><title>Some CMS</title></head> <body> <h1>Mustache</h1> <p>What do you say?</p> <p>{{test}}</p> </body> </html> 

下面是使用NodeJS,ExpressJS和MustacheJS模板引擎的工作示例/教程:

http://devcrapshoot.com/javascript/nodejs-expressjs-and-mustachejs-template-engine

您可以像平常一样build立一个完整的网页,将mustacheJS字段放在您喜欢的位置。 使用express来路由到页面,使用节点fs.readFileSync(); 获取html文件,使用胡须更新页面上的数据,然后吐出到客户端。

它很整洁。 我希望它有帮助!

-一个-

你已经试过了吗? 它不再被维护,但你可以按照一些链接,得到更多的东西..

我发现Handlebars.js是Mustache模板系统/语言的扩展。

有一个非常简单的包装与Express使用它。

当然,最好的办法是这里的post:

http://iamtherockstar.com/blog/2011/11/21/using-mustache-templates-express-apps/

到目前为止,这对我来说很好。 我发现的唯一的问题是不使用视图根path的部分。 例如,view / partials中的partials – 默认情况下,引擎仅查找partials。 让我知道,如果你知道这一点!

看看Handlerbars。 “把手提供了必要的function,让您可以有效地构build语义模板,而不会感到沮丧。把手与小胡子模板大体相容,在大多数情况下,可以用小把手交换胡子,并继续使用当前的模板。 “ – 把手