当前位置: 首页 > 面试题库 >

Windows在node.js中等效于process.on('SIGINT')?

韩季
2023-03-14
问题内容

我正在遵循此处的指导(侦听SIGINT事件)以响应Ctrl+C或服务器关闭来正常关闭Windows-8托管的node.js应用程序

但是Windows没有SIGINT。我也尝试过process.on('exit'),但这似乎迟迟没有任何成效。

在Windows上,此代码为我提供: 错误:无此类模块

process.on( 'SIGINT', function() {
  console.log( "\ngracefully shutting down from  SIGINT (Crtl-C)" )
  // wish this worked on Windows
  process.exit( )
})

在Windows上,此代码可以运行,但现在 做任何优雅的动作为时已晚

process.on( 'exit', function() {
  console.log( "never see this log message" )
})

SIGINTWindows上是否有等效事件?


问题答案:

您必须使用readline模块并监听SIGINT事件:

http://nodejs.org/api/readline.html#readline_event_sigint

if (process.platform === "win32") {
  var rl = require("readline").createInterface({
    input: process.stdin,
    output: process.stdout
  });

  rl.on("SIGINT", function () {
    process.emit("SIGINT");
  });
}

process.on("SIGINT", function () {
  //graceful shutdown
  process.exit();
});


 类似资料:
  • 问题内容: 我需要进行查询并与一年中的所有日子一起加入,但是在我的数据库中没有日历表。 谷歌搜索后,我在PostgreSQL中找到了。MySQL有类似的东西吗? 我的实际表有这样的东西: 但是我的查询必须返回: 问题答案: 这就是我的方法。它创建了从 2011-01-01 到 2011-12-31 的日期范围: 唯一的要求是 any_table中 的行 数 应大于或等于所需范围的大小(在此示例中,

  • 问题内容: 我认为问题很直接。 我正在寻找与nodejs V8引擎中的window.performance.now()类似的东西。 现在我正在使用:- 但是,我读到window.performance.now()比使用日期要准确得多,因为这里定义了什么。 问题答案: 我只想提一下,作者在浏览器中选择使用计时API的三个原因似乎并不直接适用于节点情况,第四个是Javscript时间的不准确性,引用了

  • 如何获取当前模块的目录&文件名?。在Node.js中,我将使用:&

  • 问题内容: 我正在从xml配置转移到注释。我想转换一个会话范围的bean是 可以通过注释完成此操作吗?如果没有,我该怎么做才能使该声明继续工作? 问题答案: 在spring上下文xml中,执行以下操作: 请注意,尽管如此,你将需要为该包中的所有类编写接口。

  • 问题内容: 我目前正在尝试使用fs模块读取一些文件,用于node.js。由于它缺少我曾经使用过的功能(fseek(),getline()…),因此我创建了另一个模块来取回它们。(C stdio.h的一个node.js副本)。 我的简单问题是: seek()是否以其他名称存在?或者我是否需要重新实现几乎每个函数的名称? 问题答案: 在node.js中,功能包含在函数中。使用该函数时,有一个名为的参数

  • 问题内容: 我的意思是node.js是否具有作为全局函数方法的对象。在浏览器中像这样: 问题答案: 节点中最接近的等效项是。我不确定它是否以所有相同的方式进行翻译,但是如果您打开REPL并输入,它将返回true。