2015-06-18 133 views
0

我正在使用express.js在node.js中創建示例Web應用程序。使用apache-tomcat作爲我的web服務器時,我感到有點困惑。我有兩個疑惑:使用Apache Tomcat的Express.js服務器

  1. 當我運行Apache,Tomcat作爲一個Web服務器和我的express.js服務器在端口號4000爲我提供服務,它如何知道哪個端口監聽Tomcat Web服務器。以及如果我有多個在本地主機上運行的tomcat實例,它將如何知道連接到哪個服務器實例。

    app.listen(port, "127.0.0.1"); 
    
  2. 以及如何做下面的代碼行工作:

    var server = app.listen(4000, function() { 
    
        var host = server.address().address; 
        var port = server.address().port; 
    
        console.log('server listeninig at http://%s:%s', host, port); 
    }); 
    
  3. 爲什麼我們需要採取的Apache Tomcat或其他web服務器的幫助,如果我們能夠只用express.js提供網絡服務。

回答

3

我不相信將express.js(Node.JS平臺的簡單Web服務器)和Apache Tomcat(來自JVM世界的Servlet容器)相結合是有意義的。

我敢打賭,你很困惑Apache Web ServerApache Tomcat。他們是兩個完全獨立的項目。如果是這種情況,則通知Apache Web ServerNginx HTTP服務器通常與express.js一起使用,如reverse proxies。這種組合通常用於匹配PROD級應用程序所需的安全性和性能(例如緩存)要求。

要回答你的問題,不要將express.js與Apache Tomcat結合在一起。如果您剛開始玩express.js,請單獨使用它。如果它變成一個應該在生產環境中運行的應用程序,則需要對其進行操作,這可能會考慮將其與某個HTTP服務器結合使用。

+0

嗨,我仍然困惑於如何表達知道在哪個端口上聽tomcat? – Dheeraj

+0

從等式中刪除tomcat。獨立Express.JS將爲您提供良好的學習用途。 – luboskrnac

+0

您的應用正在偵聽4000端口,因此在啓動快速服務器時針對localhost:4000發起HTTP請求 – luboskrnac