我正在处理一个节点项目,我想在退出时将一些内存写入文件。我觉得它很简单:在Windows上处理Node.js中的CTRL + C事件
process.on('exit', function() {
//handle your on exit code
console.log("Exiting, have a nice day");
});
但是,当收到CTRL + C时,此代码不会执行(在Windows上)。鉴于这是退出节点的事实上的方式,这似乎有点问题。
在这一点上我试图处理信号代替,这将导致错误(在(“SIGINT”,...)。):
node.js:218 throw e; // process.nextTick error, or 'error' event on first tick ^Error: No such module at EventEmitter. (node.js:403:27) at Object. (C:\Users\Mike\workspace\NodeDev\src\server.js:5:9) at Module._compile (module.js:434:26) at Object..js (module.js:452:10) at Module.load (module.js:353:32) at Function._load (module.js:310:12) at Array.0 (module.js:472:10) at EventEmitter._tickCallback (node.js:209:41)
开了一个快速谷歌和it appears节点简单地不处理Windows上的信号,并且CTRL + C实际上不会触发“退出”事件。上述错误不应该在* Nix系统上退出。
但是,关闭Windows平台对我来说不是一个有效的选择,所以我需要一种解决方法。有没有办法处理由用户按CTRL + C终止脚本导致的节点中的退出事件?
不错的解决方案。感觉有点......肮脏,但是,解决问题的方法往往是这样!谢谢。 – Serapth 2012-02-10 14:49:43