我有一個名爲「server.js」的Node.js文件。從文件夾外執行Node.js文件中斷文件路徑
在腳本中,我使用的東西就像打開某些文件:
var certPem = fs.readFileSync('cert_and_key_dev.pem', encoding='ascii');
使用bash shell,如果我cd到其中server.js是,並運行該命令的目錄:
[mybashshell] $節點server.js
它的工作原理,我沒有錯誤。服務器啓動並運行。
現在,當我輸出server.js文件所在的目錄時,再次運行相同的shell命令來啓動我的服務器。
它抱怨我的文件路徑到我的「cert_and_key_dev.pem」被破壞。
我並不期待這樣的事情發生。我雖然正在執行的腳本文件中使用的路徑應該是相對於腳本文件,而不是執行我的bash shell命令的位置。
任何想法?
這個方法與chbrown給出的方法有什麼區別嗎?我很好奇哪種方法更合適。 – Zhang
這真的取決於目的。如果你運行更多的「服務器」,我會建議改成'__dirname'。例如,如果您正在運行文件夾上傳腳本,我會建議使用chbrown的代碼。您必須權衡計劃在當前腳本的目錄路徑上使用當前工作目錄路徑的頻率。 –