Я работаю над проектом узла, где я хочу записать некоторую память в файл при выходе. Я полагал, что это было так просто, как:Обработка события CTRL + C в Node.js в Windows
process.on('exit', function() {
//handle your on exit code
console.log("Exiting, have a nice day");
});
Однако этот код не выполняется (на Windows), когда CTRL + C принимается. Учитывая, что это метод defacto для выхода из Node, это кажется немного проблемой.
В этот момент я попытался обработать сигнал, а не, что приводит к ошибке (на ('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 для быстрого Google и it appears узел просто не обрабатывает сигналы в Windows, а CTRL + C фактически не вызывает событие «выхода». Вышеприведенная ошибка не должна выходить из системы * Nix.
Однако выключение платформы Windows для меня не подходит, поэтому мне необходимо обходное решение. Есть ли способ обработать события «Выход» в узле, вызванные нажатием клавиши CTRL + C для завершения сценария?
Отличное решение. Чувствует себя немного ... грязно, но потом, часто работайте! Благодарю. – Serapth