用于退出的命令是什么?(即终止Node.js进程)


当前回答

按Ctrl+C两次或退出。

> 
(To exit, press ^C again or type .exit)
> 

其他回答

在命令行中,.ext是您想要的:

$ node
> .exit
$

它记录在REPL文档中。REPL(Read Eval Print Loop)是Node命令行的名称。

在正常程序中,使用process.ext([code])。

我有一个应用程序,我想:

向用户发送电子邮件退出并返回错误代码

我必须将process.ext(代码)挂接到退出事件处理程序,否则邮件将不会被发送,因为调用process.ext(代码)直接杀死异步事件。

#!/usr/bin/nodejs
var mailer = require('nodemailer');
var transport = mailer.createTransport();
mail = {
  to: 'Dave Bowman',
  from: 'HAL 9000',
  subject: 'Sorry Dave',
  html: 'Im sorry, Dave. Im afraid I cant do <B>THAT</B>.'
}
transport.sendMail(mail);
//process.exit(1);
process.on('exit', function() { process.exit(1); });

ctrl+C终止当前进程ctrl+C两次是退出REPL shellctrl+c退出REPL SHELL

正如@Dominic所指出的,抛出未捕获的错误是更好的做法,而不是调用process.ext([code]):process.exitCode=1;抛出新错误(“我的模块xx条件失败”);

请注意,不建议使用process.ext([number])。

调用process.exit()将强制进程尽快退出即使仍有异步操作等待尚未完全完成,包括I/O操作process.stdout和process.stderr。在大多数情况下,实际上不需要调用process.exit()显式。如果出现以下情况,Node.js进程将自行退出在事件循环中没有附加的工作待定。这个process.exitCode属性可以设置为告诉进程哪个退出当进程正常退出时使用的代码。例如,以下示例说明了process.exit()方法,可能导致打印到stdout的数据截断和丢失://这是一个*不*做什么的例子:if(someConditionNotMet()){打印用途到标准输出();进程.退出(1);}原因是问题是因为在Node.js中写入process.stdout有时是异步的,可能会在Node.js事件循环。然而,调用process.exit()会强制在向stdout进行额外写入之前退出的进程执行。代码应该设置process.exitCode,并通过避免调度事件循环的任何附加工作://如何正确设置退出代码//进程优雅地退出。if(someConditionNotMet()){打印用途到标准输出();process.exitCode=1;}