如何在node.js中需要一个文件,并在请求方法中传递参数,但不传递给模块?

我有一个module.js必须加载; 为了工作需要objectX;

如何将objectX传递给node.js提供的require方法中的module.js?

谢谢

// my module.js objectX.add('abc'); // error: objectX is undefined 

我想要一个方法来做到这一点,而不必改变我的所有类,因为会花费很多时间…而且它们对客户端来说具有良好的性能。 (我混合clientfiles与serverfiles ***)

       

网上收集的解决方案 "如何在node.js中需要一个文件,并在请求方法中传递参数,但不传递给模块?"

您编写的模块可以导出单个函数。 当你需要模块时,用你的初始化参数调用函数。 该函数可以返回一个Object(哈希),将其放置到需求模块中的variables中。 换一种说法:

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; }, } } 

你可以避免通过链接到“init”方法来改变实际的导出对象(把它命名为你想要的)。

模块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); }; 

然后要求这样:

 var TM = require('./TestModule.js').init(20); TM.sayHi(); 

如何解决像导出一些init方法和传递objectX作为参数后需要?

 var module = require('moduleJS'); module.init(objectX)