使用 node.js 的服务器端 mustache.js 示例

Posted

技术标签:

【中文标题】使用 node.js 的服务器端 mustache.js 示例【英文标题】:a server side mustache.js example using node.js 【发布时间】:2011-01-30 09:50:54 【问题描述】:

我正在寻找使用MustachejsNodejs 的示例

这是我的示例,但它不起作用。 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);

【问题讨论】:

【参考方案1】:

看看A Gentle Introduction to Node.js

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

【讨论】:

【参考方案2】:

我通过 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); 

【讨论】:

【参考方案3】:

感谢 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];

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

【讨论】:

它基本上将 Mustache 对象中的所有内容添加到 [special] 导出对象中。这是必要的,因为这是模块在 node.js nodejs.org/docs/v0.4.8/api/modules.html#modules 中的工作方式【参考方案4】:

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

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

会让它更快乐。

【讨论】:

以上是关于使用 node.js 的服务器端 mustache.js 示例的主要内容,如果未能解决你的问题,请参考以下文章

[Tools] Batch Create Markdown Files from a Template with Node.js and Mustache

十大模板引擎

nodejs+Express中使用mustache模板引擎

如何在 node.js 中使用 stroph.js 服务器端

如何在 Node.js 的服务器端使用 Object.values()

我们如何在服务器端使用 Node.js