29

我正在寻找使用Mustachejswith的示例Nodejs

这是我的例子,但它不起作用。Mustache未定义。我正在使用 master 分支中的 Mustachejs。

var sys = require('sys');
var m = require("./mustache");

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

sys.puts(html);
4

4 回答 4

33

我通过 npm 安装 mustache,使用正确的 require 语法并(如 Derek 所说)将 mustache 用作对象而不是函数,从而使您的示例正常工作

npm install mustache

然后

var sys = require('sys');
var mustache = require('mustache');

var view = {
  title: "Joe",
  calc: function() {
    return 2 + 4;
  }
};

var template = "{{title}} spends {{calc}}";

var html = mustache.to_html(template, view);

sys.puts(html); 
于 2011-11-12T18:33:36.243 回答
18

你的例子几乎是正确的。Mustache 是一个对象,而不是一个函数,所以它不需要 ()。改写为

var html = Mustache.to_html(template, view);

会让它更快乐。

于 2010-11-06T20:40:11.457 回答
10

感谢 Boldr http://boldr.net/create-a-web-app-with-node 不得不将以下代码添加到 mustache.js

for (var name in Mustache)
    if (Object.prototype.hasOwnProperty.call(Mustache, name))
        exports[name] = Mustache[name];

不完全确定它在做什么,但它有效。现在将尝试理解它。

于 2010-03-22T17:13:09.633 回答
-2

看看A Gentle Introduction to Node.js

为了解决这个问题,我打开了 mustache.js 并在创建 Mustache 时删除了 var 声明

于 2012-01-11T09:30:14.683 回答