如何从该模块内部引用Node.js模块的上下文对象?

时间:2015-07-14 11:23:42

标签: javascript node.js module

是否可以从该模块本身内部获取对模块的上下文对象的引用?不是global对象或exports对象,而是模块的私有上下文对象......

例如,在Node.js模块中,我正在寻找一种方法:

var a = 1;
var b = 2;

// CONTEXT is the reference I'm looking for
console.log(CONTEXT); // -> {a: 1, b: 2}

1 个答案:

答案 0 :(得分:1)

模块中可用的模块(vars,module和exports)的上下文。因此,如果我在一个模块中执行此操作并从另一个脚本中请求它:

var _pv = 1;

var _foo = function() {
    console.log('foo');
}
exports.foo = _foo;

console.log('pv: ' + _pv);
_foo();

console.log(module);
console.log(module.exports);

输出:

pv: 1
foo
{ id: '/Users/bryanmac/Testing/test2/mod.js',
  exports: { foo: [Function] },
  parent: 
   { id: '.',
     exports: {},
     parent: null,
     filename: '/Users/bryanmac/Testing/test2/test.js',
     loaded: false,
     children: [ [Circular] ],
     paths: 
      [ '/Users/bryanmac/Testing/test2/node_modules',
        '/Users/bryanmac/Testing/node_modules',
        '/Users/bryanmac/node_modules',
        '/Users/node_modules',
        '/node_modules' ] },
  filename: '/Users/bryanmac/Testing/test2/mod.js',
  loaded: false,
  children: [],
  paths: 
   [ '/Users/bryanmac/Testing/test2/node_modules',
     '/Users/bryanmac/Testing/node_modules',
     '/Users/bryanmac/node_modules',
     '/Users/node_modules',
     '/node_modules' ] }
{ foo: [Function] }

编辑:

你澄清了它在当前范围内的变量。我不相信你可以从技术上得到变量。请参阅:Getting All Variables In Scope

但是您可以导出这些变量,然后我们可以在module和module.exports上找到它们。正如我在上面指出的那样。