【发布时间】:2018-11-26 23:23:03
【问题描述】:
我对 require() 在 nodeJS 应用程序中的工作方式有一个基本的疑问。
require() 实际上返回了什么??
例如,假设我想使用 2 个第三方软件包:lodash 和 request。安装包后,我们可以写成这样的代码:
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 我应该明白
require()在这里返回一个对象,uniq是来自对象的方法是2 。 这里我应该明白require()直接返回了一个方法-request()。不,在这里,request可能是bottle。这只是一个变量名。但是它包含通过引用包的module.exports导出的任何内容 -
嗨@Adelin.. 谢谢你的解释。我已经从已安装的软件包中浏览了
uniq.js和request.js。我发现那里的代码为 -module.exports = uniq;和module.exports = Request。他们在任何地方都没有导出任何对象。您能否解释一下为什么我们使用_.uniq()而不是直接使用uniq()。谢谢
标签: javascript node.js requirejs