我正在處理一個節點項目,我想在退出時將一些內存寫入文件。我覺得它很簡單:在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