Обработка события CTRL + C в Node.js в Windows

Я работаю над проектом узла, в котором я хочу написать некоторая память для файла при выходе. Я подумал, что это так просто, как:

process.on('exit', function () {
 //handle your on exit code
 console.log("Exiting, have a nice day");
});

Однако этот код не выполняется (в Windows) при получении CTRL + C. Учитывая, что это фактически способ выхода из Node, это кажется немного проблемы.

На этом этапе я попытался обработать сигнал (on. ('SIGINT', ...)) вместо этого, что привело к ошибке:

node.js: 218 бросить е; // ошибка process.nextTick или событие 'error' на первом тике ^ Ошибка: нет такого модуля в EventEmitter. (node.js: 403: 27) на объекте. (C: \ Users \ Mike \ workspace \ NodeDev \ src \ server.js: 5: 9) в Module._compile (module.js: 434: 26) в Object..js (module.js: 452: 10) в Module.load (module.js: 353: 32) в Function._load (module.js: 310: 12) в Array.0 (module.js: 472: 10) в EventEmitter._tickCallback (node.js: 209: 41)

Отключите быстрый Google, и кажется, Node просто не обрабатывает сигналы в Windows, а CTRL + C фактически не запускает " выход "событие. Вышеупомянутая ошибка не должна завершаться в системе * Nix.

Однако отключение платформы Windows не подходит для меня, поэтому мне нужно обходное решение. Есть ли способ обрабатывать в узле события при выходе, которые вызваны нажатием клавиш CTRL + C для завершения сценария?

9
задан Serapth 8 February 2012 в 18:16
поделиться