4

node.js で別の問題が発生しています。今回は、javascript コードに、coffeescript モジュールのクラスに関数があることを認識させることができません。

メイン ファイル main.js には、次のコードがあります。

require('./node_modules/coffee-script/lib/coffee-script/coffee-script');
var Utils = require('./test');
console.log(typeof Utils);
console.log(Utils);
console.log(typeof Utils.myFunction);

私のモジュール test.coffe には、次のコードがあります。

class MyModule

  myFunction : () ->
    console.log("debugging hello world!")

module.exports = MyModule

実行したときの出力は次のnode main.jsとおりです。

function
[Function: MyModule]
undefined

私の質問は、メイン ファイルが正しいモジュールをロードしているのに、関数にアクセスできないのはなぜですか? coffeescript 構文であろうと、モジュールを要求する方法であろうと、私は何を間違っていますか? 質問を明確にする必要があるかどうか教えてください。

ありがとう、

ビニート

4

1 に答える 1

6

myFunctionインスタンスメソッドなので、 から直接アクセスすることはできませんclass

クラス(またはstatic ) メソッドとして使用する場合は、名前の前にを付け@てクラスを参照します。

class MyModule

  @myFunction : () ->
    # ...

すべてのメソッドが静的Objectであることを意図している場合は、をエクスポートすることもできます。

module.exports =

  myFunction: () ->
    # ...

それ以外の場合は、次のいずれかでインスタンスを作成する必要がありますmain

var utils = new Utils();
console.log(typeof utils.myFunction);

または、エクスポート オブジェクトとして:

module.exports = new Utils
于 2013-07-18T17:14:00.770 に答える