下面是一个简单的示例-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);
<html>
<head><title>Some CMS</title></head>
<body>
<h1>Mustache</h1>
<p>What do you say?</p>
<p>{{test}}</p>
</body>
</html>
视图文件名采用“
<name>. <extension>
”的形式,其中<name>
是将要被调用的模块名称。例如,视图布局.ejs 将告诉视图系统调用'ejs'
模块,被加载的模块必须导出方法exports.compile(str, options)
并返回一个Function以符合Express规定。
编辑:
在Mustache手册的使用中,有如下快速的示例:
以下是使用mustache.js的快速示例:
var view = {
title: "Joe",
calc: function () {
return 2 + 4;
}
};
var output = Mustache.render("{{title}} spends {{calc}}", view);
http://devcrapshoot.com/javascript/nodejs-expressjs-and-mustachejs-template-engine
您可以像平常一样构建完整的网页,将mustacheJS字段放在需要的位置。使用express路由到页面,使用node fs.readFileSync();获取html文件,使用mustache更新页面上的数据,然后将其输出到客户端。当然,最好的方法是在这里发布:
http://iamtherockstar.com/blog/2011/11/21/using-mustache-templates-express-apps/
到目前为止,这对我来说非常有效。我唯一发现的问题是在视图的根路径上不使用部分视图。例如,在view/partials中使用partials - 引擎默认只将partials视为视图。如果你找到解决方法,请告诉我!
看看 Handlerbars。"Handlebars 提供了必要的能力,让您无需感到沮丧地有效地构建语义化模板。 Handlebars 在很大程度上与 Mustache 模板兼容。在大多数情况下,可以将 Mustache 替换为 Handlebars 并继续使用当前的模板。完整的详细信息可以在 这里 找到" - Handlerbars