簡體   English   中英

從另一個目錄啟動時,我的 node.js 服務器不工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM