我正在按照指南here(监听SIGINT个事件)优雅地关闭我的Windows-8托管 node .js应用程序响应Ctrl+C或服务器关闭.

但Windows没有SIGINT个.我也try 了process.on('exit'),但似乎做任何有成效的事情都为时已晚.

在Windows上,这个代码给我:Error: No such module

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

在Windows上,此代码运行,但为too late to do anything graceful:

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

Windows上是否有SIGINT个相同的事件?

推荐答案

您必须使用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();
});

Node.js相关问答推荐

Mongoose更新许多不使用数组作为筛选器来更新记录

请求正文未定义

关于Node.js中的AES加密库的问题

在编译时强制不缩小类型范围

Axios TypeError:将循环 struct 转换为 JSON

express app.post的多个参数在Node.js中的定义是什么

无法使用 node 预签名 url 从 React 将图像文件上传到 s3

node Axios 创建全局令牌变量以在单独的变量头中使用

如何使用 Jest 模拟异步函数的延迟时间

nuxt:在 docker 镜像中找不到

'{ id: string; 类型的参数}' 不可分配给FindOneOptions类型的参数

如何为一个网站实现这 2 个网址.即 www.administrator.sitename.com 和 www.sitename.com?

类型中缺少属性,该类型是由类实现的接口

为什么 req.params.id 返回 undefined未定义?

使用 Node.js 在内存中缓冲整个文件

Node.js + Express:应用程序不会开始监听端口 80

npm publish 导致'错误:EPERM:不允许操作,取消链接...',errno -4048

node.js 模块和函数中this的含义

npm install - javascript堆内存不足

Puppeteer 等待所有图像加载然后截图