需要时初始化模块
我有一个模块,里面有一些初始化代码。 初始化应在模块加载时执行。 目前我正在这样做:
// in the module exports.init = function(config) { do it } // in main var mod = require('myModule'); mod.init(myConfig)
这有效,但我想更简洁:
var mod = require('myModule').init('myConfig')
为了保持mod
参考工作, init
应该返回什么?
你可以返回this
,在这种情况下这是对exports
的引用。
exports.init = function(init) { console.log(init); return this; }; exports.myMethod = function() { console.log('Has access to this'); }
var mod = require('./module.js').init('test'); //Prints 'test' mod.myMethod(); //Will print 'Has access to this.'
或者你可以使用一个构造函数:
module.exports = function(config) { this.config = config; this.myMethod = function() { console.log('Has access to this'); }; return this; };
var myModule = require('./module.js')(config); myModule.myMethod(); //Prints 'Has access to this'