Pracuję nad projektem węzła, w którym chcę zapisać część pamięci do pliku przy wychodzeniu. Pomyślałem, że to było tak proste, jak:Obsługa zdarzenia CTRL + C w Node.js w systemie Windows
process.on('exit', function() {
//handle your on exit code
console.log("Exiting, have a nice day");
});
Jednak ten kod nie jest wykonywany (w systemie Windows) po otrzymaniu CTRL + C. Biorąc pod uwagę, że jest to defacto sposób na wyjście z Node, wydaje się, że jest to problem.
W tym momencie próbował obsłużyć sygnał zamiast, który prowadzi do błędu (na ('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)
Off do szybkiego Google i it appears węzeł po prostu nie obsługuje sygnałów w systemie Windows, a CTRL + C w rzeczywistości nie powoduje zdarzenia "exit". Powyższy błąd nie powinien kończyć się w systemie * Nix.
Jednak wyłączenie platformy Windows nie jest dla mnie prawidłową opcją, więc potrzebuję obejścia. Czy istnieje sposób obsługi zdarzeń na wyjściu w węźle powodowanych przez naciśnięcie klawiszy CTRL + C w celu zakończenia działania skryptu?
Przyjemne rozwiązanie. Czuję się trochę ... brudny, ale potem, często robią to robota! Dzięki. – Serapth