1

ノードアプリケーションのさまざまな部分を含むjavascriptファイルがいくつかあります。これらは、以下のロジックを使用して必要です。file2.jsから1つのfile1.jsの関数にアクセスしたいのですが、これまでのところほとんど成功していません。助けていただければ幸いです、ありがとう。

app.js:これは、サーバーを起動し、すべての高速ルートを含めるファイルです。

require(path_to_file+'/'+file_name)(app, mongoose_database, config_file);  //Require a bunch fo files here in a loop.

file1.js:これは上記のコードを使用して必要なサンプルファイルです。

module.exports = function(app, db, conf){
  function test() {  //Some function in a file being exported.
    console.log("YAY");
  }
}

file2.js:これは上記のコードを使用して必要な別のファイルです。このファイル(file2.js)内からfile1.jsの関数にアクセスしたい。

module.exports = function(app, db, conf){
  function performTest() {  //Some function in a file being exported.
    test();
  }
}
4

3 に答える 3

4

file1.js

module.exports = function(app, db, conf){
  return function test() {
    console.log("YAY");
  }
}

関数を返す必要があることに注意してください。

file2.js

module.exports = function(app, db, conf){
  return function performTest() {
    var test = require('./file1')(app, db, conf);
    test();
  }
}

(他のファイル)

var test = require('./file2')(app, db, conf);
test();

また

require('./file2')(app, db, conf)();
于 2012-11-13T19:25:15.357 に答える
1

現在 file1 にある関数は、エクスポート内の関数のみにスコープが設定されています。代わりに、各関数がそのオブジェクトのメンバーであるオブジェクトをエクスポートします。

//file1.js
module.exports = {
    test: function () {
    }
};


//file2.js:
var file1 = require('./file1.js');
module.exports = {
    performTest: function () {
        file1.test();
    }
}
于 2012-11-13T19:12:03.940 に答える