初學(xué)nodejs,在今天遇到了一個(gè)神奇的問(wèn)題,先上代碼:
var data = fs.readFileSync( './system-config.json', "utf8")
沒(méi)錯(cuò),我想讀取system-config.json中的配置。剛開(kāi)始,無(wú)論如何也讀不到,連個(gè)錯(cuò)誤信息也沒(méi)有。調(diào)試了一番,終于出了一個(gè)錯(cuò)誤信息:
no such file or directory
怎么可能?先看看我的工程目錄結(jié)構(gòu):
<code>
root----
|_others
|_init
|_system-config.json
</code>
明明就在這里啊,明明有啊!!!確認(rèn)了好幾遍的??!既然系統(tǒng)說(shuō)找不到那肯定還是路徑不對(duì),最后改成:
var data = fs.readFileSync(__dirname + '/system-config.json', "utf8")
成功?。。∠矘O而泣?。?!原來(lái),只有 require 的路徑是相對(duì)當(dāng)前文件,其他大部分函數(shù)接收的路徑都是相對(duì)于「當(dāng)前工作目錄」即程序運(yùn)行時(shí)的 cwd。所以別一種解決方式就是:
path.join(process.cwd(), '/init/system-config.json')
當(dāng)然了,cwd這種方式要保證啟動(dòng)文件在程序的根目錄下。
參看這里