3

私はNode.jsを初めて使用し、(関数を要求するだけでなく)別のファイルからオブジェクトを要求する方法を理解しようとしていますが、試行するすべてexportsmodule-exports、など)が失敗します。

だから、例えば、私が持っている場合foo.js

    var methods = {
                   Foobar:{
                            getFoo: function(){return "foo!!";},
                            getBar: function(){return "bar!!";}
                   }
                  };
module.exports = methods;

foo.jsそして今、私はfromのオブジェクト内で関数を呼び出したいindex.js

var m = require('./foo');  
function fooMain(){
  return m.Foobar.getFoo();
};

どうすればよいですか?とのあらゆる種類の組み合わせを試しexportsましmodule-exportsたが、オブジェクトの一部ではない離散関数を呼び出した場合にのみ機能するようです。

4

1 に答える 1

5

試したとのことですexportsが、コードに表示されません。モジュールの外部から表示したいものはすべて、に割り当てられている(または参照可能である)必要がありますmodule.exports。あなたの場合、あなたがすでにオブジェクトを持っているなら、あなたはそれをに割り当てることができますmodule.exports

var methods = {
    ...
};

// You must export the methods explicitly
module.exports = methods;

module.exports魔法ではなく、通常のオブジェクトであり、そのように扱うことができます。次のように、メソッドを直接割り当てることができたという意味です。

module.exports.Foobar = {};
module.exports.Foobar.getFoo = function() { ... };
...

または、おそらくご存知のように、イベントで関数に置き換えることができます。

module.exports = function() { return "It's ALWAYS over 9000!!!!"; };

エクスポートして初めて、別のモジュールで何でも使用できるようになります。

于 2012-08-30T15:46:25.770 に答える