2016-07-24 4 views
0

moudle1.jsでは、モジュールをオブジェクトとしてエクスポートしています。 module2.jsでNode.jsは関数をファイル間の変数またはオブジェクトとしてエクスポートします

module.exports = { 

      attribute1: function(param1, param2) { 
        attribute2(param1); 
        attribute3(param2) 
      } 

      attribute2 : function(param) { 
      } 

      attribute3 : function(param1) { 
      } 
    }; 

は、私は意図的にmodule1.attribute1(param1,param2)を書いていない

var module1 = require('./module1'); 

exports.module1 = module1.attribute1; 
exports.module1 = module1.attribute2; 

Noticeをできるようにしたいです。このファイルでパラメータを指定する必要はありませんが、3番目には可能です

var module2 = require('./module2'); 
var param1 = 'foo'; 
var param2 = 'dummy'; 
module.module1(param1,param2); 

これは主にテスト用です。

+1

を使用し、'。それはJavascriptの仕組みではありません。 'this.attribute2(param1)'と呼ぶこともできますし、親オブジェクトに名前を付けて名前で参照することもできます。 – jfriend00

答えて

1

オブジェクトではなく、関数自体を実際にエクスポートすることができます。

変数名として使用しないでください。reserved wordです。

// function.js 
module.exports = function (param1, param2) {...} 

// module.js 
var fn = require('./module'); 
fn('foo', 'dummy') 
+0

質問を編集しました。複数の機能の場合も同じですか? – wayland700

0

あなたと同じになりますファイルmodule1.jsを作成します。

module.exports = { 

      attribute1: function(param1, param2) { 
        attribute2(param1); 
        attribute3(param2) 
      } 

      attribute2 : function(param) { 
      } 

      attribute3 : function(param1) { 
      } 
    }; 

単一のフォルダ内のファイルの両方を維持し、"module".

言うためにそれを名前

module.exports = { 
    module1 : require('./module1').attribute1 
    module2 : require('./module1').attribute2 
    module3 : require('./module1').attribute3 
} 

などのコンテンツを維持する別のファイルを作成し、ファイルの中"index.js"

という名前を付けますファンクションを使用するフォルダ名をエクスポートする

var module = require('./module') 

あなたが `attribute2の(PARAM1)と同じオブジェクト内の別のプロパティを参照することができない機能

module.module1("foo""bar"); 
関連する問題