1

口ひげテンプレートをサーバー側の静的ページにコンパイルする簡単なアプリケーションを作成しようとしています。これまでのところ、次のようなものがあります。

var view = {

    title: "Joe",
    calc: function () {

        return 2+4;
    }

};

var mustache = require("mustache");
var template = require("./home.template");

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

console.log(output);

そして私のテンプレートは次のようになります:

{{title}} spend {{calc}}

これが失敗する原因について何か提案はありますか?

完全なエラー メッセージは次のとおりです。

home.template:1
} spend {{calc}}
        ^

module.js:437
  var compiledWrapper = runInThisContext(wrapper, filename, true);
                        ^
SyntaxError: Unexpected token {
    at Module._compile (module.js:437:25)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/Users/MorehouseJ09/Documents/production_development/mustache/current/compiler.js:12:16)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)

どんな助けでも素晴らしいでしょう!

4

1 に答える 1

2

fs.readFile()テンプレートを文字列として読み込むために使用します。Requireは、口ひげコードではなくjavascriptコードを必要としない限り機能しません。

http://nodejs.org/api/fs.html#fs_fs_readfile_filename_encoding_callback

編集
これが機能するかどうかを確認してください...

var mustache = require("mustache");
var fs = require("fs");

var view = {

    title: "Joe",
    calc: function () {

        return 2+4;
    }

};

fs.readFile('./home.template', 'utf-8', function (err, data) {
  if (err) throw err;
  var output = mustache.to_html(data, view);
  console.log(output);
});
于 2012-11-01T17:23:46.560 に答える