2011-12-18 62 views
13

在成为mustache.js模板样式后,我想继续在node.js中使用它。使用mustache.js和node.js?

我已经能够安装它并确认它正在工作,但我无法弄清楚如何使用它来模板文件。

如何加载一个名为template.html的模板并在node.js中应用胡子的魔法?

回答

15

fs.readFileSyncfs.readFile同步版本,所以它会被阻塞。下面是一个基本示例,说明如何使用带有mustache.js的fs.readFile这将返回回调中的胡须模板。

var object_to_render = {key: "value", ...}; 

fs.readFile(path_to_mustache_template, function (err, data) { 
    if (err) throw err; 
    var output = Mustache.render(data.toString(), object_to_render); 

    // do something with output... 
}); 
+0

感谢您的回答。没有注意到它是同步的,但它完成了这项工作。欢迎来到SO BTW :) – Industrial 2012-02-25 22:42:12

+0

真棒:)这个例子只是我一直包括胡子模板的方式之一;可能还有其他更好的方法 – 2012-02-27 18:48:54

5

我结束了一个小小的帮助函数,将模板文件作为字符串加载;

function loadTemplate(template) { 
    return this.fs.readFileSync(app.set('views') + template+ '.html').toString(); 
} 

var html = Mustache.to_html(loadTemplate('myView'), {key: "value", ...}); 

res.send(html);