node.js中方法process.exit(1)和process.exit(0)之间有什么区别?

时间:2017-03-31 18:25:47

标签: node.js

在node.js应用程序中,我看到了这两种方法的使用process.exit(1)process.exit(0)。任何人都可以给我一个确切的答案吗?

3 个答案:

答案 0 :(得分:17)

当没有更多异步操作挂起时,节点通常以0状态代码退出。还有其他退出代码,如下所述:

1 - 未捕获的致命异常: 有一个未捕获的异常,它不是由域或uncaughtException事件处理程序处理的。

2 - 未使用:Bash保留内置误用。

3 - 内部JavaScript解析错误:Node的引导过程中内部的JavaScript源代码导致解析错误。这种情况极为罕见,通常只能在Node本身的开发过程中发生。

4 - 内部JavaScript评估失败:在评估时,Node的自举过程内部的JavaScript源代码无法返回函数值。这种情况极为罕见,通常只能在Node本身的开发过程中发生。

5 - 致命错误:V8中存在致命的无法恢复的错误。通常,将使用前缀FATAL ERROR将消息打印到stderr。

6 - 非函数内部异常处理程序:有一个未捕获的异常,但内部致命异常处理函数以某种方式设置为非函数,并且无法调用。

7 - 内部异常处理程序运行时失败:存在未捕获的异常,并且内部致命异常处理程序函数本身在尝试处理错误时抛出错误。

8 - 未使用

9 - 参数无效:指定了未知选项,或者提供了需要值的选项而没有值。

10 - 内部JavaScript运行时失败:调用自举功能时,Node引导过程内部的JavaScript源代码会引发错误。这种情况极为罕见,通常只能在Node本身的开发过程中发生。

11 - 调试参数无效:设置了--debug和/或--debug-brk选项,但选择了无效的端口号

> 128 - 信号退出:如果Node收到致命信号,例如SIGKILLSIGHUP,则其退出代码将为128加上信号的值码。这是一种标准的Unix实践,因为退出代码被定义为7位整数,信号出口设置高位,然后包含信号代码的值。

来源: https://www.tutorialspoint.com/nodejs/nodejs_process.htm

答案 1 :(得分:3)

您可以在文档中找到问题的答案:https://nodejs.org/api/process.html#process_process_exit_code

基本上,如果您想要成功退出,请使用0,如果您想要以失败使用1退出。

答案 2 :(得分:1)

0是成功代码,1(或其他数字)可以是失败代码。如果未指定任何内容,将使用0。有助于在出路上传递信息。在这里回答:

https://stackoverflow.com/a/5266239/5463636

更多信息直接来自Node.js文档:

https://nodejs.org/api/process.html#process_process_exit_code