path.js 中的程式碼
1 2 3 4 5 6
|
fs.readFile('../lib/common.js','utf8' , function (err, data) { if (err) { return console.log('error: ', err) } console.log('OK') })
|
在 nodejs 資料夾下執行
node path.js
, 可以順利讀取檔案
退回一個資料夾, 在 test 資料夾下執行
node nodejs/path.js
, 則是報錯了。
這是 Node 的機制所導致的, 在 Node 中, 文件裡的
相對路徑
代表的是執行 node 時所在的資料夾的相對路徑, 並不是你所執行的 JS 檔本身的相對路徑。
在這個例子中, 如果在
~/DeskTop/test
這個資料夾執行
node nodejs/path.js
指令, 程式碼中 readFile 內參數路徑 ../lib/common.js 會被解釋成
~/DeskTop/lib/common.js
, 而顯然這個資料路徑是不存在的。
浅析 NodeJs 的几种文件路径