今天配接口,使用fs模塊讀取json出現了錯誤'no such file or directory',然后經查終於解決,特此記錄。
使用nodejs的fs模塊讀取文件時習慣用相對路徑,但是運行的時候出現了上述的錯誤,原因就是fs模塊讀取文件的相對路徑是以啟動server.js的位置為基准的,而不是以server.js文件的位置。
這就是這篇文章所要講述的問題。並且nodejs官方推薦在使用fs模塊讀取文件時使用絕對路徑,而不是相對路徑。
但是寫絕對路徑又有些許麻煩,那該如何解決呢,參考以下代碼就可以啦:
var fs = require('fs'); let path = require('path'); let PUBLIC_PATH = path.resolve(__dirname, 'xx.json'); fs.readFile(PUBLIC_PATH, 'utf8', function (err, data) { if (err) console.log(err); });