Node.js读取文件相对路径写法注意

首先看一下文件的存放结构:

我们现在希望在上面标记的JS文件里面读取html里面的内容,我们的代码如下:

var fs=require("fs");
fs.readFile('test.html',function (err,data) {
    if(err){
        console.log(err);
    }else{
        console.log(data);//打印出的是16进制的内容<Buffer e8 bf 99 e6 98 af e8 bf bd e5 8a a0 e5 86 99 e5 85 a5 61 70 70 65 6e 64 46 69 6c 65 54 65 73 74 2e 74 78 74 e6 96 87 e4 bb b6 e7 9a 84 e5 86 85 e5 ae ... >
        console.log(data.toString());//打印出的是我们正常的文本信息
    }
})

最后我们发现,会报读取不到test.html文件的错误(当然,有时候又可以读取到,也就是说什么这种代码书写方式不稳定)

此时我们应该使用path.join(_dirname,"文件路径");//__dirname表示当前JS文件的目录名,后面的文件路径就是相对“__dirname”而定

__dirname 总是指向被执行 js 文件的绝对路径,也就是说你在E:\web\test\abc.js中写__dirname那么路径就是E:\web\test

var fs=require("fs");
var path=require("path");
fs.readFile(path.join(__dirname,'test.html'),function (err,data) {
    if(err){
        console.log(err);
    }else{
        console.log(data);//打印出的是16进制的内容<Buffer e8 bf 99 e6 98 af e8 bf bd e5 8a a0 e5 86 99 e5 85 a5 61 70 70 65 6e 64 46 69 6c 65 54 65 73 74 2e 74 78 74 e6 96 87 e4 bb b6 e7 9a 84 e5 86 85 e5 ae ... >
        console.log(data.toString());//打印出的是我们正常的文本信息
    }
})

 

posted @ 2019-08-06 08:36  指尖下的世界  阅读(3607)  评论(0编辑  收藏  举报
/* 看板娘 */ /*炸泡*/
/* 鼠标点击求赞文字特效 */