var User = require('../ models / user');
所以在Visual Studio中,我创建了一个名为models的文件夹,里面有一个名为user.js的文件。根据我的学习,使用./models/user而不是两个点是有意义的。虽然,这给我一个崩溃,我想知道可能是什么原因。谢谢
答案 0 :(得分:5)
.
(一个点)是当前目录
..
(两个点)是父目录
您使用的任何一个取决于您要加载的内容。
示例:
假设你有这些文件结构:
- app
- dir1
- file1.js
- file2.js
- dir2
- file3.js
要使用file1.js中的file2.js,您需要:
require('./file2.js');
因为这些文件位于同一目录中。
但是要使用file1.js中的file3.js,你需要:
require('../dir2/file3.js');
因为您需要从一个目录开始,而不是从当前目录开始。
当然要使用file1.js中的file2.js,这也可行:
require('../dir1/file2.js');
甚至是这样:
require('../../app/dir1/file2.js');
甚至是这样一条疯狂的道路:
require('./././../../app/../app/../app/dir1/file2.js');
这不是Node.js特有的。它的工作方式与在shell或HTML或其他方面的工作方式相同。一个点是当前目录,两个点是父目录。
这就是你使用./script
在当前目录中运行script
的原因(如果.
不在你的PATH中),你可以运行../script
来运行script
父目录中的{1}}等。在HTML <a href=".."></a>
中将是父目录的链接,<a href="../file.html"></a>
将是父目录中file.html
的链接,而{{1}将是当前目录中<a href="./file.html"></a>
的链接等。这是一个相当普遍的惯例。