我克隆了Express.js repo,其中包含一个包含Express.js不同用例的Examples文件夹。我打开了Hello World示例,代码以以下行开头
var express = require('../../');
我理解该文件中的其余代码,但上面的代码是我的头脑?我知道require
函数用于在项目中包含一个JS模块,一个应该将模块名称作为参数传递给require()
函数,但在上述语句的情况下,我们传入一个目录,它将要做什么?
答案 0 :(得分:5)
您正在传递位于当前文件夹后面的两个文件夹的index.js
文件。
示例:
所以,如果你在yourFile.js
var something = require('../../');
您正在参考index.js
。
如果您执行以下操作,则完全相同:
var something = require('../../index');
两者与这一个完全相同(.js
,在这种情况下是不必要的)
var something = require('../../index.js');
这是因为index.js
是默认名称。
您可以阅读更多at nodejs.org,但重要的部分在这里引用:
如果目录中没有package.json文件,那么 Node.js将尝试加载index.js或index.node文件 那个目录。例如,如果没有package.json文件 上面的例子,然后要求(' ./ some-library')会尝试加载:
./ some-library / index.js
./一些库/ index.node
答案 1 :(得分:2)
如果没有给出文件名,它将加载index.js
。