如何主动终止node . js进程

  介绍

这篇文章主要介绍了如何主动终止节点。js进程,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

js的作用是什么

1,能够嵌入动态文本于HTML页面。2,对浏览器事件做出响应。3,读写HTML元素。4、在数据被提交到服务器之前验证数据。5,检测访客的浏览器信息。6,控制饼干,包括创建和修改等7,基于节点。js技术进行服务器端编程。

有几个原因会导致节点。js进程终止。其中一些是可以避免的,例如抛出错误时,而另一些是无法防止的,例如内存不足。全局<代码> 过程是一个事件发射器实例,当执行正常退出时,将发出一个退出<代码> 事件。然后程序代码可以通过侦听这个事件来执行最后的同步清理工作。

下面是可以主动触发进程终止的一些方法:

操作例子手动流程退出<代码> process.exit(1) 未捕获的异常<代码>抛出新的错误()未兑现的承诺<代码> Promise.reject() 忽略的错误事件<代码> EventEmitter #排放(& # 39;错误# 39;)未处理的信号<代码>杀死& lt;美元PROCESS_ID>

其中有许多是属于偶然被触发的,例如未捕获的错误或未处理的承诺,但是其中也有为了直接使进程终止而创建的。

<强>进程退出

使用<代码> process.exit(代码)来终止进程是最直接的方法。这在当你知道自己的过程已经到了生命周期的尽头时非常有用。,<代码> 代码值是可选的,默认值为0,最大可以设为255.0表示进程运行成功,而任何非零的数字都表示发生了问题。这些值可以被许多不同的外部工具使用例。如当测试套件运行时,非零值表示测试失败。

直接调用<代码> process.exit() 时,不会向控制台写入任何隐式文本。如果你编写了以错误表示形式调用此方法的代码,则你的代码应该用户输出错误来帮助他们解决问题,例如运行以下代码:

,美元node  -e “process.exit (42)“;   美元,echo  $ ?

在这种情况下,单行的节点。js程序不会输出任何信息,尽管壳程序确实会打印退出状态。遇到这样的进程退出,用户将无法理解究竟发生了什么事情。所以要参考下面这段程序配置错误时会执行的代码:

function  checkConfig(配置),{   if 才能;(! config.host), {   ,,,console.error (“Configuration  is  missing  & # 39;主机# 39;,参数!“);   ,,,process.exit (1);   ,,}   }

在这种情况下,用户没会很清楚发生了什么。他们运行这个程序,将错误输出到控制台上,并且他们能够纠正这个问题。

<代码> process.exit() 方法非常强大,尽管它在程序代码中有自己的用途,但实际上绝对不应该将其引入可重用的库中。如果在库中确实发生了错误,则应抛出这个错误,以便程序可以决定应该如何处理它。

<强> exceprion,拒绝和发出的误差

虽然<代码> process.exit() 很有用,但对于运行时错误,你需要使用其他工具,例如当程序正在处理HTTP请求时,一般来说错误不应该终止进程,而是仅返回错误响应。发生错误的位置信息也很有用,这正是应该抛出误差<代码> 对象的地方。

<代码> 错误类的实例包含对导致错误的原因有用的元数据,例如栈跟踪信息和消息字符串。从误差<代码> 扩展你自己的错误类是很常见的操作。单独实例化误差<代码> 不会有太多副作用,如果发生错误则必须抛出。

在使用<代码> 扔关键字或发生某些逻辑错误时,将引发<代码> 错误。发生这种情况时,当前栈将会“展开”,这意味着每个函数都会退出,直到一个调用函数将调用包装在<代码> try/catch代码语句中为止。遇到此语句后,将调用<代码>抓? try/catch代码中,则该错误被视为未捕获。

虽然你应该使用带有误差<代码> 的<代码> 扔关键字,例如<代码>抛出新的错误(& # 39;foo # 39;)> 实例非常重要,因为捕获这些错误的代码很可能会期望得到错误属性。

节点。js内部库中常用的另一种模式是提供一个<代码>。属性,该属性是一个字符串值,在发行版之间应保持一致。比如错误的

如何主动终止node . js进程