今天配接口,使用fs模塊讀取json出現了錯誤'no such file or directory',而後經查終於解決,特此記錄。node
使用nodejs的fs模塊讀取文件時習慣用相對路徑,可是運行的時候出現了上述的錯誤,緣由就是fs模塊讀取文件的相對路徑是以啓動server.js的位置爲基準的,而不是以server.js文件的位置。
這就是這篇文章所要講述的問題。而且nodejs官方推薦在使用fs模塊讀取文件時使用絕對路徑,而不是相對路徑。json
可是寫絕對路徑又有些許麻煩,那該如何解決呢,參考如下代碼就能夠啦:ui
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); });