nodeJS中require()的功能

时间:2018-06-18 06:47:21

标签: javascript node.js requirejs

我对require()在nodeJS应用程序中的工作方式有一个基本的查询。

require()实际返回什么?

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

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

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

现在让我们考虑request包,

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

我在此理解,require()直接返回了一种方法 - request()

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

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

请帮助我理解这一点。

1 个答案:

答案 0 :(得分:3)

require返回模块定义的内容。有时,模块定义了一个函数:

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

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

有时,模块导出对象(exports最初在加载模块时引用空白对象,然后模块添加或替换该对象):

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

...所以当你导入模块时, 你得到了什么。

由模块决定。这是一个非常简单的系统。更多Modules文档(不要与ECMAScript (JavaScript) Modules文档混淆; JavaScript自己的模块与Node.js的工作方式略有不同。