2011-12-14 25 views
20

En Express.js, ¿hay algún modo de configurar una función de devolución de llamada para que se ejecute cuando la aplicación se apaga?Gancho de desconexión de Express.js

+0

Las siguientes respuestas no son útiles en la actividad diaria, que busca [esto] (https://stackoverflow.com/questions/14031763/doing-a-cleanup-action- just-before-node-js-exits) - process.on ('SIGINT',() => {...}) – Midas

Respuesta

20

Usted podría utilizar los Node.js core process 'exit' event así:

process.on('exit', function() { 
    // Add shutdown logic here. 
}); 

Por supuesto, el bucle de eventos principal dejará de correr después de la función de salida devuelve lo que no puede programar los temporizadores o devoluciones de llamada desde dentro de ese función (por ejemplo, cualquier E/S debe ser sincrónica).

1

Si necesita acceder a algo en el ámbito actual, puede bind() como en esta respuesta: https://stackoverflow.com/a/14032965/1410035 pero es posible que desee unirse this.

function exitHandler(options, err) { 
    if (options.cleanup) console.log('clean'); 
    if (err) console.log(err.stack); 
    if (options.exit) process.exit(); 
} 

process.on('exit', exitHandler.bind(null,{cleanup:true}));