2014-09-19 28 views
0

我在node.js中创建一个模块,我想访问正在加载模块的级别的变量。在node.js中访问我的模块的父var

var externalvar = 12345; 

var mymodule = require('mymodule'); 

可能访问externalvar里面的mymodule

回答

2

是的。

var externalvar = 12345; 

var mymodule = require('mymodule')(externalvar); 

内,您的模块:

module.exports = function(val) { 
    console.log(val); //12345 
}; 
+0

存在其他的方式,这将是对用户透明?我不喜欢加载模块时用户必须添加var。 – EnZo 2014-09-19 13:16:59

+0

@EnZo这是执行此操作的标准方法。为什么你不希望用户传递函数参数? – 2014-09-19 13:23:37

+0

我的问题依然存在。因为nodejs不接受 var test = 1234;所以我的想法是通过这个对象来访问所有的变量: var mymodule = require('mymodule')(this); – EnZo 2014-09-19 13:48:45

0

我觉得这是最好的,这样做的唯一途径。

externalvar = 12345; 

或者

global.externalvar = 12345; 

模块

module.exports = function() { 
    console.log(global.externalvar); //12345 
}; 

内,但这种工作不

var externalvar = 12345; 
console.log(global.externalvar); //undefined