Node.js如何在后台工作-简要分析

Node.js仅使用一个JavaScript执行线程。

问题是-Node.js如何处理多个http或任何其他请求,并且在性能,安全性方面也可能存在疑问?

  • Node.js在应用程序启动时启动事件循环并使用它处理回调函数.Node.js维护工作池。长时间运行的操作将转移到该工作池,事件池仅在任务完成时处理该工作池的响应。

  • 工作者池与操作系统配合使用,可以完成繁重的工作并管理任务计划。

  • 一旦完成任务,工作池就会使用回调函数来响应事件循环。

  • 事件循环维护适当事件的执行顺序。

事件循环-

  • 它首先检查任何计时器事件,例如setTimeout或setInterval。

  • 其次,它检查未决的回调,例如与I / O相关的待执行的回调。

  • 下一步是投票;节点将尝试查找新的I / O以执行其回调函数。

  • 检查阶段,在此阶段,节点将立即执行回调函数。它使用setImmediate调用

  • 关闭回调-在结束节点中,将执行已注册的关闭回调函数。

  • 如果没有剩余要执行的注册事件,则仅节点将执行process.exit。

  • 节点维护一个ref变量来保存事件计数器,在每个新事件中,计数器都会递增。

  • 在服务器环境中,我们使用createServer创建服务器,该服务器没有关闭事件,因此除非手动停止进程,否则它不会被node.js自动关闭。

  • 默认情况下,每个http请求的节点维护范围都应避免将其与其他请求混在一起。

  • 定义的全局对象(如果有的话)可以由任何请求访问,并且需要开发人员注意。