在之前相对定位中我经常进行 ./ 进行相对定位,但是我重新整文档之后发现好多文件路径是对的,但是却访问不到找了半天问题,呜呜呜呜呜…… 在开发nodejs中,我们往往需
在之前相对定位中我经常进行./
进行相对定位,但是我重新整文档之后发现好多文件路径是对的,但是却访问不到找了半天问题,呜呜呜呜呜……
在开发nodejs中,我们往往需要读取文件或者写入文件,最常用的模块就是fs核心模块。一个最简单的写入文件的代码如下(暂时不考虑回调函数):
fs.readFile("./test.txt", function (error,) {}
该代码的意思就是从当前目录下的test.txt文件中读取数据,然后在result中打印输出。当在我们本地运行该代码应该没什么问题,可以成功执行。但有像我这种情况一次转移整个项目,就会出现路径找不见的情况,或者如果这样的代码在项目中运行,同时把该项目部署到云服务器上时,很有可能会出现bug。 bug的提示就是无法在该目录找到test.txt文件。其实由于运行环境的不同,以上的相对路径的写法导致最后读取的位置是不同的。
正确的写法应该是使用"path.join()"
的方式实现:(__dirname表示当前文件的目录名)
fs.readFile(path.join(__dirname, "./test.txt"), function (error,) {}
这样的实现在不同机子的环境上都能成功运行。
fs.readFile(path.join(__dirname, "./a.js"),function(err,data){
if(err){
console.log("取读失败");
}else{
console.log("读取成功,数据是"+data.toString());
}
})