如何在兩個不同端口上同時運行node.js項目? 例如domain.com:1010/和domain.com:2020/如何在不同端口上運行signle node.js項目
但是這兩個不同端口的來源應該是同一個項目。 謝謝。
如何在兩個不同端口上同時運行node.js項目? 例如domain.com:1010/和domain.com:2020/如何在不同端口上運行signle node.js項目
但是這兩個不同端口的來源應該是同一個項目。 謝謝。
我頭腦中的第一個想法是通過端口作爲參數。 隨着應該有一個終端和
$ node app.js 2020
在另一個
使用
$ node app.js 1010
沒有問題。 可以得到參數傳遞給你的程序有一個數組
process.argv
例如process.argv[1]
應該給你的端口,如果你開始你的應用程序,因爲我沒有上
感謝您的解決方案,它的工作!你怎麼看,服務器同時運行2臺服務器不是很重要嗎? –
Re:服務器上的負載 - 這種方法創建兩個node.js進程來使用兩個不同的端口運行腳本兩次,因此它需要兩倍的資源。下面@MayorMonty給出的答案僅創建一個node.js進程,因此需要的資源較少,但單個node.js進程將不得不監聽並提供更多請求。它會太重嗎?這取決於你的服務器硬件 - 我想說的可能不是,除非你試圖在Raspberry Pi上運行它,或者是非常低功耗的東西。 – Kryten
正如@Kryten所說的。我想要指出的是Node是單線程的,所以使用這種方式你可以獲得某種並行性。 –
如果您有http.Server
類變量,像所以:
var server = http.createServer(handler);
您不能多次撥打.listen()
;隨後的通話不起作用。
但是你可以做的是同樣的處理程序註冊兩個http.Server
類和有.listen()
到不同的端口,如:
var server1 = http.createServer(handler)
var server2 = http.createServer(handler)
server1.listen(3000);
server2.listen(5000);
你能不能用'。聽()'多次? – MayorMonty
是的,我試圖在不同的端口上同時運行,但只與第一個端口一起工作。 –
沒有足夠的細節。你想使用相同的過程還是同一個程序? –