2017-03-02 22 views
-2

情況總是如此,一旦你產生了一個快速的應用程序,你必須手動設置你想要聽的端口?我只是好奇。這是有道理的,我安裝應用程序後,我可以繼續前進,啓動應用程序,它會自動「工作」(如我需要導航到我的網站)?爲什麼我們需要手動設置Express應用程序應該聽哪個端口?

+0

你不需要。如果您沒有指定端口,或將其設置爲0,則節點將隨機選擇一個端口。 –

+0

我如何知道端口號? – nincs12

+0

http://stackoverflow.com/questions/4840879/nodejs-how-to-get-the-servers-port –

回答

1

你可以設置在你的app.js文件中偵聽哪個端口,除非該端口繁忙,可以通過設置哪些端口在通常情況下不使用,或者將你的web服務器配置爲自動=在服務器啓動時啓動您的應用程序,這將減少端口繁忙的可能性。或只是編輯你的代碼嘗試隨機組合,直到它找到一個端口。

1

艇員選拔隨機發表您的服務器和日誌輸出在控制檯

由於Joe Clay告訴你使用0,而不是一個端口號應解決您的問題,但是,如果你想知道詳情致電功能在服務器啓動,

app.listen(0,'your_device_local_network_IP',() => { 
    console.log(app.address()) 
} 

這將註銷有關服務器的詳細信息,這應該是結果,如果你使用本地網絡IP(我個人用它來檢查我的跨多個設備的網站在我的網絡)

{ address: '192.168.10.5', family: 'IPv4', port: 34488 } 

你不輸入你的局域網IP,發出'your_device_local_network_IP'是可選的,輸出應該像

{ address: '::', family: 'IPv6', port: 38135 } 

這裏是我的簡單的工作服務器:

let http = require('http'); 
let path = require('path'); 
let serveStatic = require('serve-static'); 

let express = require('express'); 
let app = express(); 


app.set('views', './views'); 
app.set('view engine', 'pug'); 

app.use('/', serveStatic('./public')); 
app.get('/', (req, res) => {res.render('index')}); 
let server = http.createServer(app); 
server.listen(0,() => { 
    console.log(server.address()) 
}) 

How to set port for express server dynamically?

+0

@ nincs12對此有幫助嗎? –

相關問題