使用mustache.js和node.js?

15

在熟悉mustache.js模板风格之后,我希望在node.js中继续使用它。

我已经成功安装并确认了它正在运行,但是我不知道如何将其用于模板文件。

我该如何加载名为template.html的模板,并在node.js中应用mustache的特性呢?

2个回答

21

fs.readFileSyncfs.readFile的同步版本,因此它会阻塞。下面是一个基本示例,展示如何在回调中使用fs.readFile和mustache.js,这将返回mustache模板。

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... 
});

谢谢你的回答。我没有注意到它是同步的,但它完成了工作。顺便欢迎来到SO :) - Industrial
太棒了 :) 这个例子只是我使用mustache模板的其中一种方式;可能还有其他/更好的方法。 - diff_sky

7
我最终创建了一个小助手函数,用于将模板文件加载为字符串;
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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接