0

我继承了一个 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 创建一个单独的线程,还是所有应用程序都将由一个线程提供服务?

提前致谢

4

2 回答 2

2

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

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

于 2013-06-18T17:38:19.300 回答
0

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

于 2013-06-18T17:36:44.170 回答