Estoy trabajando en un proyecto de nodo donde quiero escribir algo de memoria al archivo al salir. Me imaginé que era tan simple como:Manejando el evento CTRL + C en Node.js en Windows
process.on('exit', function() {
//handle your on exit code
console.log("Exiting, have a nice day");
});
Sin embargo, este código no se ejecuta (en Windows) cuando se recibe CTRL + C. Dado que esta es la manera defacta de salir de Node, esto parece un problema.
En este momento me trataron de manejar la señal de cambio, lo que resulta en el error (en ('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 para una rápida Google y it appears Nodo simplemente no maneja señales en Windows y CTRL + C de hecho no activa el evento de "salida". El error anterior no debería salir en un sistema * Nix.
Sin embargo, desactivar la plataforma de Windows no es una opción válida para mí, así que necesito una solución. ¿Hay alguna forma de controlar los eventos On Exit en Node causados por el hecho de que el usuario presione CTRL + C para finalizar el script?
Buena solución. Se siente un poco ... sucio, pero luego, ¡a menudo funciona! Gracias. – Serapth