繁体   English   中英

NodeJS Require函数

[英]NodeJS Require 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模块,即使该名称存在文件也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM