a server side mustache.js example using node.js

2019-03-09 01:23发布

问题:

I'm looking for an example using Mustachejs with Nodejs

here is my example but it is not working. Mustache is undefined. I'm using Mustachejs from the master branch.

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

回答1:

I got your example working by installing mustache via npm, using the correct require syntax and (as Derek said) using mustache as an object not a function

npm install mustache

then

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


回答2:

Your example is almost correct. Mustache is an object, not a function, so it doesn't need the (). Rewritten as

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

will make it happier.



回答3:

Thanks to Boldr http://boldr.net/create-a-web-app-with-node Had to add the following code to mustache.js

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

Not exactly sure what it is doing but it works. Will try to understand it now.



回答4:

Take a look to A Gentle Introduction to Node.js

To fix I opened up mustache.js and removed the var declaration when Mustache is being created