0

複数のモジュールがあり、次のことを行いました。

// module1.js

module.exports = function() {
  ...
}

// module2.js

module.exports = function() {
  ...
}

app.js で

m1 = require('./module1')
m2 = require('./module2')

m1.method()
m2.method()

TypeError が発生します。その後、両方のモジュールでメソッドをエクスポートすることになりました。

個々のメソッドを明示的にエクスポートする以外に、複数のモジュールをエクスポートする方法はありますか?

4

1 に答える 1

0

変数を 2 回渡そうとしているようですrequire()undefinedrequire() は、ロードするモジュールを決定するために文字列を引数として取る必要があります。

他の 2 つのモジュールが app.js と同じディレクトリにある場合は、試してください。

m1 = require('./module1')
m2 = require('./module2')

編集: あなたがするのを忘れているのは

m1 = new require('./module1')()
m2 = new require('./module2')()

モジュールが次のようになっていると仮定します。

module.exports = function() {
  this.method = function(){}
}

個人的には、関数の代わりにモジュールからオブジェクト リテラルを返すだけです。

module.exports = {
  method1: function(){},
  method2: function(){}
}

次に、次のようにモジュールのエクスポートからメソッドを呼び出すことができます。

m1 = require('./module1');
m1.method1();
于 2013-07-13T02:38:31.730 に答える