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());//打印出的是我們正常的文本信息
    }
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM