前言
三四桃花清和早,五六天中荷葉香砸喻。正值年華逍遙嘆柔逼,化作愁腸渡河人。最近好忙恩够,去了趟巴厘島卒落,轉(zhuǎn)頭又跑了回重慶馬拉松,我至今還停留在巴厘島的藍(lán)天沙灘碧海蜂桶,重慶的紅油辣子毛肚的世界里儡毕。在重慶的時(shí)候,還嚴(yán)重的水土不服了,一直吐腰湾,感覺都快要去見馬克思了雷恃,好在拖著病懨懨的軀體,成功完賽费坊,也算是一件美事了......這篇文章倒槐,我要記錄的是一個(gè)非常奇怪的報(bào)錯(cuò),主要是因?yàn)閘inux中關(guān)于路徑的使用和express中理解的不太一樣附井,我在此做個(gè)記錄和解答讨越,如果有分析不對的地方,還請各路高手給予指點(diǎn)和改正永毅。
問題
我構(gòu)建了一個(gè)node項(xiàng)目把跨,然后將啟動(dòng)程序放到了bin下,程序的路徑如下:
其中www為啟動(dòng)程序沼死,app.js為應(yīng)用入口着逐。
但是在bin下執(zhí)行,node www后意蛀,程序可以正常啟動(dòng)耸别,但是在使用res.render時(shí),總是提示報(bào)錯(cuò):
報(bào)錯(cuò)信息很明確县钥,就是說秀姐,你的路徑不對,在xxxx/bin/下沒有views這個(gè)文件夾魁蒜。
我這個(gè)程序在win下正常運(yùn)行囊扳,那么怎么就會(huì)有問題了呢?
于是我查看了一下線程兜看,我猜測可能是跟啟動(dòng)的路徑有關(guān),于是我寫了這樣一個(gè)腳本
export MAIN_JS="./bin/www"
cd $NODE_HOME
echo "Start Node.js ... ...."
nohup node $MAIN_JS \
將啟動(dòng)的路徑改為該項(xiàng)目的根路徑狭瞎,問題便解決了细移,然后直接用node ./bin/www試,程序也可以正常運(yùn)行熊锭。
總結(jié)
我感覺弧轧,node程序會(huì)根據(jù)啟動(dòng)的路徑不同來確認(rèn)程序的根路徑在哪里,在項(xiàng)目的根路徑啟動(dòng)node則碗殷,根路徑就被認(rèn)為是程序的啟動(dòng)路徑精绎,如果在其他路徑啟動(dòng),則其他路徑就會(huì)被認(rèn)為是程序的啟動(dòng)路徑锌妻。不知道我的理解對不對代乃,請各位高手給予幫助。