node.js脚本中的多个express实例

时间:2013-06-18 17:32:37

标签: node.js express

我继承了Node.js代码并且遇到了这些行

....
var app1 = express();
app1.listen(8080)

var app2 = express();
app2.listen(8081)

var app3 = express();
app3.listen(8082)

....

所有这些行都在一个名为serverInit.js的js文件中

每个app1,app2和app3都有自己的路由和不同的代码。

我想知道这是如何运作的? Node是否为每个app1,app2和app3创建一个单独的线程,或者所有应用程序都将由一个线程提供服务?

提前致谢

2 个答案:

答案 0 :(得分:2)

不,您的应用程序代码(包括Express库)是单线程的。当然,Node本身是多线程的,网络I / O是在不同的线程上处理的 - 但无论你有一个Express应用程序还是数百个,都是如此。

您所做的是创建三个Express实例,并将每个实例绑定到不同的端口。每个端口上的请求都将分派到匹配的Express实例。

答案 1 :(得分:0)

有一个v8实例(因为三个服务器可能共享变量等,因此安排多个v8实例非常困难)。应用程序在所有三个端口上侦听网络连接,app1响应端口8080上的请求,8081上的app2和8082上的app3。