次のような基本的な質問があります。
同じディレクトリに main.js と logger.js という 2 つの個別のモジュールがあります。logger.js は次のとおりです。
function Logger(){
return this;
};
Logger.prototype.log = function(str) {
console.log('[' + this.mPrefix + ']' + str);
};
Logger.prototype.init = function(pr){
this.mPrefix = pr;
}
module.exports = Logger;
今、次のようにメインモジュールでロガーを使用したいと思います:
var logger = require('./logger.js');
logger.init('MAIN');
logger.log('foo');
しかし node は、 orLogger
という名前のメソッドがないと主張しています。自己オブジェクトを返す関数を渡しているので、私も試しましたが、役に立ちませんでした。他のモジュールでオブジェクトを定義してエクスポートするためのベスト プラクティスは何ですか? ちなみに、これを行うことでうまくいきます:init
log
require('./logger.js')()
var logger = require('./logger.js');
var l = new logger();
l.init('MAIN');
l.log('bar');
しかし、それは私には不器用に思えます。説明と提案はありますか?