nodeJS 中 require() 的功能

Functionality of require() in nodeJS

我有一个关于 require() 在 nodeJS 应用程序中如何工作的基本问题。

require() 实际上 return 是什么??

例如,假设我想使用 2 个第三方包:lodashrequest。安装包后,我们可以将代码编写为:

const _ = require('lodash')
_.uniq(Array)

所以我应该理解 require() return 这里是一个对象, uniq 是对象 _ 的方法吗?

现在让我们考虑 request 包,

const request = require('request')
request (
{
  url: '',
  json:true
}
callback_function()
)

所以我应该在这里理解 require() 直接 return 编辑了一个方法 - request()

如果我使用与下面相同的方法,我会遇到类型错误 req1.request is not a method

const req1 = require('request');
req1.request (
{
  url: '',
  json:true
}
callback_function()
)

请帮助我理解这一点。

require returns 无论模块定义如何。有时,模块只定义一个函数:

exports = function request(/*...*/);

...所以当您导入模块时,这就是您得到的。

有时,模块会导出对象(exports 最初是指加载模块时的空白对象,然后模块会添加或替换该对象):

exports._ = {
    // ...
};

...所以当您导入模块时,这就是您得到的

这取决于模块。这是一个非常简单的系统。 Modules documentation (not to be confused with the ECMAScript (JavaScript) Modules 文档中有更多信息; JavaScript 自己的模块与 Node.js 的略有不同。