我想从路径读取,我写了两个不同的代码。第一个代码不起作用,但第二个代码可以完美运行。我不明白其中的区别。有人可以向我解释发生了什么吗?谢谢。 该文件存储在/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
如果控制台.log生成的路径将得到以下结果:
第一个代码块:
"模块/配置/_test.js">
第二个代码块:
"./modules/config/_test.js">
在第二种情况下,您有一个从当前目录 (./
( 开始的相对路径。require
将从当前目录开始查找模块文件夹。
在第一种情况下,路径是绝对的,这意味着require
将从文件系统的根路径开始查找modules
文件夹。
我希望你现在明白其中的区别。
在这种情况下,您真正想使用的path.resolve
:
var tmpModulePath1 = path.resolve('./', 'modules/',"config/", 'test.js');
检查此问题的答案以了解.join
和.resolve
之间的区别。