【发布时间】:2018-04-18 11:05:32
【问题描述】:
我是 nodejs 的新手。我尝试在我的文件系统中使用一些文件。我想让他们通过一些真实的路径。这是结构:
-app
-resources
-tmp
-file1
-file2
-common
-common.js
-etc
所以,我想从 int common 文件夹中的 common.js 文件访问我的 resources/tmp 文件夹中的 file1 和 file2。我使用了两个相对路径有条不紊:
// First , wrong one
var tmpfolder = '../resources/tmp';
// Second, good one
var tmpfolder = './resources/tmp';
文件绝对路径是这样的:
C:\Users\xy\Documents\work\nodejs\projects\project_wrapper_folder\project_folder\resources\tmp
如果我记录第一个相对路径,我会得到这个结果:
C:\Users\xy\Documents\work\nodejs\projects\project_folder\resources\tmp
这是错误的,因为它不包含包装文件夹。
但第二个工作正常。 有人可以解释一下这种行为吗?
更新
我明白'../'的意思了,谢谢你的解释!
我已经尝试过@Lissy 的回答:“记住这一点。/ 将解决您的项目根目录的价值......”这听起来不错,但结果并非如此。 我的应用中有这个逻辑:
var tmpfolder = require('./otherFolder/orhetFile');
其中 otherFolder 是我的 project_folder 的子文件夹。所以,当我在这里使用它时,我得到了一个名为 Cannot find module ...
的错误但是如果我在 fs 模块中使用这个'./',这里:/project_folder/otherFolder_2/otherFile_2 就像:
var path = `./resources/tmp`;
fs.mkdirsSync(path);
有效!
这些对我来说很奇怪。如果 './' 表示当前文件夹,则上面的示例不起作用(但它有效)。 但是如果 './' 表示项目根目录的路径,那么带有 require 的示例应该可以工作(但不工作)。
奇怪,require 或 fs 有什么意思吗??
【问题讨论】:
-
Dots in url or path的可能重复
-
您能否多发一些代码,因为在 Node 中读取文件的不同方法的工作方式略有不同?
标签: node.js filesystems windows-10 fs