什么决定了 Node.js 应用是否保持运行

What determines whether a Node.js app is kept running?

本文关键字:运行 是否 应用 决定了 Node js 什么      更新时间:2023-09-26

什么决定了 Node.js 应用程序是否继续运行?

当代码如下所示时:

console.log('Hello World');

将打印此短语,并且应用程序将立即退出。

但有时,当我们有像 Web 服务器这样的东西正在侦听时,它会继续工作。

确定应用是否会继续运行的一般规则是什么?是与事件循环有关还是类似的东西?

事件循环(部分)负责节点保持打开的进程。

简而言之,事件

循环的工作原理是将事件循环上的事件排队,只要有事件排队,该进程就不会存在。一旦所有事件都用尽并且代码完成运行,默认情况下,该进程就存在在那里,因为没有更多的代码要运行,也没有更多的事件要处理。

任何"在后台工作"的东西实际上都在调度一个事件,让事件循环处理,并检查它是否完成。某些内容(如 http 服务器和各种事件发射器)将导致进程永远不会退出。

我认为事件循环与保持服务器运行没有任何关系。当您期望通过http发出某些请求时,您必须侦听用户将请求的某个端口。您必须继续倾听,除非您想停止接收用户对服务器的请求。

另一方面,事件循环是当user-1发送请求时,您的服务器会接受请求并开始处理它。但是多亏了node.js它没有港口...它一直在听。当user-2发送请求时,您的服务器会接受该请求并开始处理它,就像它对user-1所做的那样。当您的服务器完成user-1's请求时,它会向用户 1 发送包含必要信息的响应。它将为user-2做同样的事情.但是,如果服务器在完成请求之前user-2's处理完user-1's请求,它将向user-2发送响应,然后向user-1发送响应。

现在考虑数千个请求,将有一个用于发回响应的循环。该循环称为事件循环。

希望这个答案有意义。谢谢!!