我怎样才能看到我的node.jsvariables已经启动?

我很新的node.js,我想知道:看到任何创build的variables范围设置为一种全球范围,有没有什么办法列出哪些variables名已被启动?

node.jsvariables通常不是全局的。 缺省情况下,在模块的顶层声明的任何variables只在模块范围内,不会与其他模块发生冲突或干扰。

只有显式分配给global对象的variables实际上是全局可用的。

 global.myVar = "foo"; 

其他所有内容都包含在一个较小的范围内 – 模块范围或模块内的function范围内。

所以,如果你有这样一个模块:

 var x = 3; module.exports = function() { return x; } 

那么,variablesx根本就不是一个全局variables。 它包含在本模块的范围内。 它不会与任何其他同名模块中的variables冲突。


由于模块中的顶级variables实际上是模块函数包装器中的局部variables,而且Javascript没有提供任何方法来迭代函数范围内的局部variables,所以无法迭代模块范围内的所有顶级variables。

如果你想能够在一些上下文中遍历所有的variables,那么你可以使用不同的格式,并把它们作为一个对象的属性。

 var obj = {}; obj.x = 3; obj.y = 5; // list all enumerable properties of obj for (var prop in obj) { console.log("property: " + prop + " = ", + obj[prop]); } 

仅供参考,您也可以使用像node-inspector这样的debugging器来查看在任何给定范围内声明的所有variables。 在该范围中设置一个断点,然后查看该断点处存在的局部variables。