![](/img/trans.png)
[英]Why doesn't node.js server work on my subdomain (using cloudflare on WHM server)?
[英]My node.js server doesn't work when launched from another directory
我正在嘗試讓我的 node.js 服務器在啟動時啟動。 如果我在我的服務器文件夾中並輸入:
node server.js
它運行良好並啟動位於同一文件夾中的 python 腳本。
但是,如果我從該目錄之外或從 init 腳本運行它,如下所示:
node /home/servers/server.js
它啟動並接收調用,但沒有像預期的那樣運行 python 腳本。
有誰知道發生了什么以及我該如何解決? 謝謝。
當您運行node
,它引用的所有文件系統調用從目錄節點從調用,而不是該目錄app.js
中,所以如果你想require('./myfile')
myfile.js
需要位於您正在運行node
的目錄中。
從不同的目錄運行這個簡單的腳本以查看它的運行情況(它運行ls
,從這里精心復制):
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("ls -la", puts);
至於你的 Python 問題,你應該開發一個經驗位置來調用app.js
,並在定位腳本時使用它。
您還可以更改目錄以確保您位於需要的位置。 只需在文件頂部添加如下內容:
__dirname
指向包含當前文件的目錄。 對於這個例子,我將假設以下 repo 結構:
repo/
src/
index.js
package.json
在 index.js 里面我會放:
const path = require('path');
process.chdir(path.join(__dirname));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.