2015-06-18 108 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