2017-03-09 64 views
0

在大多數情況下,我在Linux上將項目作爲公共運行,並且沒有任何問題。但是現在我嘗試在Windows上運行項目也是public。 I用於Windows防火牆的created規則。當我嘗試打開頁面192.168.0.106:3000我得到錯誤,該服務器無法正常工作。如何將公共Node.js Express項目配置爲公共?Node.js Express - 公開運行項目

謝謝。

this.app.listen(process.env.PORT || 3000, '192.168.0.106', function() { 
    console.log(chalk.green('Server started with port 3000')); 
    var os = require('os'); 
    var interfaces = os.networkInterfaces(); 
    var addresses = []; 
    for (var k in interfaces) { 
     for (var k2 in interfaces[k]) { 
      var address = interfaces[k][k2]; 
      if (address.family === 'IPv4' && !address.internal) { 
       addresses.push(address.address); 
      } 
     } 
    } 
    console.log(addresses); 
}); 
+0

你可以顯示你如何啓動服務器的代碼片段?很可能你需要聽取'0.0.0.0'或'任何'設備,但我們會看到一個片段。 –

回答

0

第二個參數是你要聽上收聽路線。最簡單的解決方案是將其設置爲0.0.0.0,以偵聽所有路線。

this.app.listen(process.env.PORT || 3000, '0.0.0.0', function() { 
    //... 
}) 

這裏是關於http.listen api的文檔。但是當你指定一個特定的IP地址時,這意味着你只會在這條路線上進行監聽。當您嘗試以192.168.0.x的身份回覆自己時,則可以從另一路線呼叫。與127.0.0.1同樣如此。使用0.0.0.0收聽所有路線。

+0

我喜歡你說,但我仍然無法訪問服務器頁面 –

+0

去:'http:// localhost:3000'不是一個特定的IP –

+0

本地所有工作良好,我想獲得從不同的設備和地方訪問,使用像簡單的網站 –