ロードする必要があるmodule.jsがあります。動作するためにはobjectXが必要です。
Node.jsが提供するrequireメソッドで、objectXをmodule.jsに渡すにはどうすればよいですか?
ありがとう
// my module.js
objectX.add('abc');
// error: objectX is undefined
私はすべてのクラスを変更する必要がなく、それを行う方法を望んでいます。これは、時間がかかるためです。クライアント側にとっては、パフォーマンスが優れています。 (私はクライアントファイルとサーバーファイルを混合します***)
作成したモジュールは、単一の関数をエクスポートできます。モジュールが必要な場合は、初期化引数を指定して関数を呼び出します。その関数は、必要なモジュールの変数に配置するオブジェクト(ハッシュ)を返すことができます。言い換えると:
main.js
var initValue = 0;
var a = require('./arithmetic')(initValue);
// It has functions
console.log(a);
// Call them
console.log(a.addOne());
console.log(a.subtractOne());
math.js:
module.exports = function(initValue) {
return {
addOne: function() {
return initValue + 1;
},
subtractOne: function() {
return initValue - 1;
},
}
}
「init」メソッドでチェーンすることにより、実際にエクスポートされたオブジェクトの変更を回避できます(任意の名前を付けます)。
モジュールTestModule.js:
var x = 0; // Some private module data
exports.init = function(nx) {
x = nx; // Initialize the data
return exports;
};
exports.sayHi = function() {
console.log("HELLO THERE "+x);
};
そして、それをこのように要求します:
var TM = require('./TestModule.js').init(20);
TM.sayHi();
必要な直後にinitメソッドをエクスポートし、パラメーターとしてobjectXを渡すなどの回避策についてはどうですか?
var module = require('moduleJS');
module.init(objectX)