0
我有一个自定义模块,并希望提供一种初始化它的方法require
,但直接返回一个对象在随后的需求。先导出函数,然后是对象
但是模块在第一次需要时被缓存,因此后续要求仍然返回init
函数,而不是直接返回obj
。
server.js:
var module = require('./module.js');
var obj = module.init();
console.log('--DEBUG: server.js:', obj); // <-- Works: returns `obj`.
require('./other.js');
other.js:
var obj = require('./module.js');
console.log('--DEBUG: other.js:', obj); // <-- Problem: still returns `init` function.
module.js:
var obj = null;
var init = function() {
obj = { 'foo': 'bar' };
return obj;
};
module.exports = (obj) ? obj : { init: init };
我怎么能窝k围绕这个问题?还是有一个既定的模式实现这样的?
但我想保留obj
缓存,因为我的真实init
做了一些工作,我宁愿不要在每个require
上做。