最近、既存のnode.jsプロジェクトにファイルをインポートしようとしました。私はこれがモジュールで書かれるべきであることを知っています、しかし私はこのように私の外部のjavascriptファイルを含めます:
eval(fs.readFileSync('public/templates/simple.js')+'')
simple.jsの内容は次のようになります。
if (typeof examples == 'undefined') { var examples = {}; }
if (typeof examples.simple == 'undefined') { examples.simple = {}; }
examples.simple.helloWorld = function(opt_data, opt_sb) {
var output = opt_sb || new soy.StringBuilder();
output.append('Hello world!');
return opt_sb ? '' : output.toString();
};
(はい、グーグルクロージャーテンプレート)。
これで、次を使用してテンプレートファイルを呼び出すことができます。
examples.simple.helloWorld();
すべてが期待どおりに機能しています。ただし、これらの関数のスコープが何であるか、およびexamplesオブジェクトにアクセスできる可能性がある場所を理解することはできません。
すべてがnode.js0.8サーバーで実行されており、私が言ったように、その動作は...理由がよくわかりません。
説明してくれてありがとう。