【问题标题】:Mulitple express instances in a node.js scriptnode.js 脚本中的多个 express 实例
【发布时间】:2013-06-19 01:38:19
【问题描述】:

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

提前致谢

【问题讨论】:

    标签: node.js express


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 确实——这种有点最终就像同时读取3个文件一样工作。 http 服务器和其他服务器一样只是一个 I/O 资源。
      猜你喜欢
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2018-03-28
      • 2010-12-24
      • 1970-01-01
      相关资源
      最近更新 更多