初學(xué)nodejs季蚂,在今天遇到了一個神奇的問題,先上代碼:
var data = fs.readFileSync( './system-config.json', "utf8")
沒錯乒躺,我想讀取system-config.json中的配置招盲。剛開始,無論如何也讀不到嘉冒,連個錯誤信息也沒有曹货。調(diào)試了一番,終于出了一個錯誤信息:
no such file or directory
怎么可能讳推?先看看我的工程目錄結(jié)構(gòu):
<code>
root----
|_others
|_init
|_system-config.json
</code>
明明就在這里啊顶籽,明明有啊!!!確認了好幾遍的!娜遵!既然系統(tǒng)說找不到那肯定還是路徑不對蜕衡,最后改成:
var data = fs.readFileSync(__dirname + '/system-config.json', "utf8")
成功!I枘狻慨仿!喜極而泣!D呻省镰吆!原來,只有 require 的路徑是相對當(dāng)前文件跑慕,其他大部分函數(shù)接收的路徑都是相對于「當(dāng)前工作目錄」即程序運行時的 cwd万皿。所以別一種解決方式就是:
path.join(process.cwd(), '/init/system-config.json')
當(dāng)然了,cwd這種方式要保證啟動文件在程序的根目錄下核行。
參看這里