在開發nodejs中,我們往往需要讀取文件或者寫入文件,最常用的模塊就是fs核心模塊。一個最簡單的寫入文件的代碼如下(暫時不考慮回調函數):
- fs.readFile("./test.txt", function (error, result) {}
該代碼的意思就是從當前目錄下的test.txt文件中讀取數據,然後在result中打印輸出。當在我們本地運行該代碼應該沒什麼問題,可以成功執行。但是如果這樣的代碼在項目中運行,同時把該項目部署到雲服務器上時,很有可能會出現bug。 bug的提示就是無法在該目錄找到test.txt文件。其實由於運行環境的不同,以上的相對路徑的寫法導致最後讀取的位置是不同的。
正確的寫法應該是使用"path.join()"的方式實現:(__dirname表示當前文件的目錄名)
- fs.readFile(path.join(__dirname, "./test.txt"), function (error, result) {}