1

基本的な Node.js+socket.io アプリがあり、coffee-script ファイルを含めたいと考えています。ファイルを含めるのは簡単でした

require('coffee-script');
items = require('./brain/items.coffee');

そしてそれは機能します-console.logはデバッグ情報をスローします。しかし、ファイルから変数、関数、その他のものにアクセスできませんでした。また、インポートされたファイルのコンパイル済みバージョンでは、次のようになります。

(function() {
  var a,run;
  a = 'ok';
  run = function() {
    return console.log('all-oik!');
  };
}).call(this);

そのため、独自のスコープで実行され、他のスクリプトからは実際にはアクセスできないように見えます (私は間違っていますか? 私は高度な JS があまり得意ではありません)。

これを回避し、メイン アプリからコーヒー コンテンツを取得するにはどうすればよいですか?

PS: 重要な場合、メイン アプリは、コーヒー スクリプトではなく、プレーンな .js ファイルです。

4

1 に答える 1

1

これは、コーヒー スクリプト固有の問題ではありません。メインファイルの通常の js ファイルから関数をインポートしようとしましたか? それはどうしたの?

多くの便利なイントロの 1 つを読むことができます: http://openmymind.net/2012/2/3/Node-Require-and-Exports/

ノードの require が commonjs モジュールを使用し、モジュールの外部で何かを利用できるようにするには、それをmodule.exports変数に割り当てる必要があることがわかります。

あなたの場合:(コーヒースクリプトで)

module.exports.a = 'ok'
module.exports.run = () ->
  return console.log 'all-oik!'
于 2012-08-10T09:14:18.527 に答える