Javascript nodeJS中require()的功能
我对nodeJS应用程序中的Javascript nodeJS中require()的功能,javascript,node.js,requirejs,Javascript,Node.js,Requirejs,我对nodeJS应用程序中的require()如何工作有一个基本的疑问 require()实际返回的是什么 例如,假设我想使用两个第三方软件包:lodash和request。安装软件包后,我们可以将代码编写为: const _ = require('lodash') _.uniq(Array) 因此,我应该理解require()在这里返回一个对象,而uniq是对象\uu中的一个方法吗 现在让我们考虑请求< /代码>包, const request = require('request') re
require()
如何工作有一个基本的疑问
require()
实际返回的是什么
例如,假设我想使用两个第三方软件包:lodash
和request
。安装软件包后,我们可以将代码编写为:
const _ = require('lodash')
_.uniq(Array)
因此,我应该理解require()
在这里返回一个对象,而uniq
是对象\uu
中的一个方法吗
现在让我们考虑<代码>请求< /代码>包,
const request = require('request')
request (
{
url: '',
json:true
}
callback_function()
)
因此,我应该理解,require()
直接返回了一个方法-request()
如果我使用与下面相同的方法,我会遇到一个类型错误,req1.request不是一个方法
const req1 = require('request');
req1.request (
{
url: '',
json:true
}
callback_function()
)
请帮助我理解这一点。
require
返回模块定义的任何内容。有时,模块定义单个功能:
exports = function request(/*...*/);
…因此,当您导入模块时,得到的就是这些
有时,模块导出对象(导出
最初在加载模块时引用空白对象,然后模块添加或替换该对象):
…因此,当您导入模块时,得到的就是这些
这取决于模块。这是一个非常简单的系统。文档中有更多内容(不要与文档混淆;JavaScript自己的模块与Node.js的工作方式略有不同)。1因此我应该理解
require()
在这里返回一个对象,而uniq
是来自对象yes 2的一个方法。我是否应该理解,require()
已经直接返回了一个方法-request()
。不。在这里,请求
可能是瓶子
。它只是一个变量名。但它保存通过模块导出的任何内容packageHi@Adelin.. 谢谢你的解释。我已经浏览了安装包中的uniq.js
和request.js
。我发现这里的代码是-module.exports=uniq代码>和module.exports=Request
。他们在任何地方都没有输出任何对象。你能解释一下为什么我们用.uniq()
而不是直接uniq()
。谢谢你好,克劳德,非常感谢你的详细解释。我已经浏览了安装包中的uniq.js
和request.js
。我发现这里的代码是-module.exports=uniq代码>和module.exports=Request
。也不知道他们在哪里导出任何对象。你能解释一下为什么我们用.uniq()
而不是直接uniq()
。谢谢。@METALHEAD-您不是在导入uniq.js
,而是在导入lodash
,它将其他文件的内容聚合到一个单独的模块中,并将其导出为。
(但也可以直接导出),请参见lodash.js
,该模块执行此操作:(freeModule.exports=)。\u=
(其中freeModule
在引导中是module
,这很复杂,因为它支持多模块系统)。非常感谢您的解释。
exports._ = {
// ...
};