当前位置 : 主页 > 网络编程 > PHP >

nodejs读取文件时相对路径的正确写法(使用fs模块)

来源:互联网 收集:自由互联 发布时间:2023-10-08
在之前相对定位中我经常进行​ ​./​ ​进行相对定位,但是我重新整文档之后发现好多文件路径是对的,但是却访问不到找了半天问题,呜呜呜呜呜…… 在开发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());
}
})


网友评论