I have a module.js that must be loaded; In order to work needs objectX;
How do I pass the objectX to the module.js in the require method provided by node.js?
tha
The module that you write can export a single function. When you require the module, call the function with your initialization argument. That function can return an Object (hash) which you place into your variable in the require-ing module. In other words:
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());
arithmetic.js:
module.exports = function(initValue) {
return {
addOne: function() {
return initValue + 1;
},
subtractOne: function() {
return initValue - 1;
},
}
}
What about workaround like export some init method and pass objectX as parameter right after requiring?
var module = require('moduleJS');
module.init(objectX)
You can avoid changing the actual exported object by chaining in an "init" method (name it whatever you want).
Module 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);
};
And then requiring it like this:
var TM = require('./TestModule.js').init(20);
TM.sayHi();