如果我们将目录位置传递给Node.js需要函数,会发生什么?
我克隆了Express.js回购包含具有Express.js不同用例的示例文件夹。 我打开了Hello World示例,代码从下面一行开始
var express = require('../../');
我了解该文件中的其余代码,但是上面的代码已经过去了。 我知道require
函数是用来在你的项目中包含一个JS模块,并且应该将模块名称作为parameter passing给require()
函数,但是在上面的语句的情况下,我们传入一个目录,它是什么将要做?
您正在传递位于当前文件夹之后的两个文件夹的index.js
文件。
例:
所以,如果你的yourFile.js
有这个
var something = require('../../');
你正在引用你的index.js
。
如果你这样做,完全一样:
var something = require('../../index');
和这两者完全一样(使用.js
,在这种情况下是不必要的)
var something = require('../../index.js');
发生这种情况是因为index.js
是默认名称。
您可以在nodejs.org上阅读更多内容,但是重要的部分在这里引用:
如果目录中没有package.json文件,则Node.js将尝试从该目录中加载index.js或index.node文件。 例如,如果在上面的例子中没有package.json文件,那么require('./ some-library')会尝试加载:
./some-library/index.js
./some-library/index.node
如果没有给出文件名,它将加载index.js
。