关于javascript:nodeJS中require()的功能

Functionality of require() in nodeJS

本问题已经有最佳答案,请猛点这里访问。

我有一个关于require()如何在nodejs应用程序中工作的基本查询。

require()实际返回什么??

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

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

那么,我应该理解,require()在这里返回一个对象,uniq是来自对象_的方法吗?

现在让我们考虑一下request包,

1
2
3
4
5
6
7
8
const request = require('request')
request (
{
  url: '',
  json:true
}
callback_function()
)

因此,我应该理解,require()直接返回了一个方法-request()

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

1
2
3
4
5
6
7
8
const req1 = require('request');
req1.request (
{
  url: '',
  json:true
}
callback_function()
)

请帮助我理解这一点。


requirereturns无论定义的模块。有时,该模块定义一个单一的功能:

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

……所以当你import的模块,这是你得到的。

有时,modules(exports出口对象是指当一个空白的模块是面向对象initially loaded,然后添加到modules取代,或面向对象):

1
2
3
exports._ = {
    // ...
};

……所以当你import的模块,这是你得到的。

这是到该模块。这是一个非常简单的系统。在modules文件(不更大的困惑与ecmascript(JavaScript)modules文件、JavaScript的工作从自己的modules稍differently node.js的)。