我想从路径中读取并编写了两个不同的代码。第一个代码不起作用,但第二个代码完美无缺。我不明白这些差异。有人可以向我解释发生了什么事吗?谢谢。 该文件存储在/ modules / config /
中第一个代码:
var tmpModulePath = path.join('./modules/',"config/");
var moduleConfigInfo = require(tmpModulePath + "_test.js");
第二段代码:
var tmpModulePath = path.join('./modules/',"config/");
var moduleConfigInfo = require("./" + tmpModulePath + "_test.js");
从第一个代码,我得到这个错误:找不到模块... _ tset.csv
答案 0 :(得分:0)
如果你控制台.log生成的路径,你得到这个结果:
第一个代码块:
"模块/配置/ _test.js"
第二个代码块:
" ./模块/配置/ _test.js"
在第二种情况下,您有一个从当前目录(./
)开始的相对路径。 require
将从当前目录开始查找模块文件夹。
在第一种情况下,路径是绝对路径,这意味着require
将从文件系统的根路径开始查找modules
文件夹。
我希望你现在明白这个区别。
在这种情况下,您真正想要使用的是path.resolve
:
var tmpModulePath1 = path.resolve('./', 'modules/',"config/", 'test.js');
检查this question的答案,了解.join
和.resolve
之间的区别。