NodeJS需要function
当我发现需求不在其中时,我正在检查节点的全局和模块。 我不知道这是否是神奇的,但如果任何人都可以解释如果require是全局的,那么为什么它不在全局对象中,也不在模块对象中?
因为它在范围内 。 在文件中加载时,幕后的节点会封装源代码,使得代码看起来像这样:
(function (exports, require, module, __filename, __dirname) { // here goes what's in your js file });
然后调用匿名函数,传入一个新的对象用于exports
并引用require
函数。 ( 更多细节在这里 )
现在应该很明显,为什么你可以打电话require
即使它不是一个真正的全球性。
要求是将核心模块编译到二进制文件中。 请在此处详细阅读http://nodejs.org/api/modules.html#modules_core_modules 。
核心模块在lib /文件夹的节点源文件中定义。
如果核心模块的标识符被传递给require(),则核心模块总是被优先加载。 例如,require('http')将总是返回内置的HTTP模块,即使有这个名字的文件。