Reputation: 17899
Can you have a stateful Node.js module? Like:
exports.connectionsCache = new (function () {
var cache = {};
this.getOrCreate = function (url) {
if (!cache[url]) {
cache[url] = new Connection(url);
}
return cache[url];
};
}());
Will the state survive multiple require
calls? Or should one use a simple global object for that?
Upvotes: 0
Views: 2480
Reputation: 140220
require
already caches the module:
test2.js:
module.exports = {
state: 0
};
test.js
var state = require("./test2.js");
state.state = 3;
console.log(state.state);
var state2 = require("./test2.js");
console.log(state2.state);
state2.state = 4;
console.log(state.state);
Output
$ node test.js
3
3
4
Upvotes: 5