首先看一下文件的存放結構:
我們現在希望在上面標記的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());//打印出的是我們正常的文本信息 } })