2011-12-14 3 views
20

В Express.js есть ли способ настройки функции обратного вызова, выполняемой при закрытии приложения?Express.js hookdown

+0

ответы на приведенные ниже не являются полезными в повседневной деятельности, что вы ищете [это] (https://stackoverflow.com/questions/14031763/doing-a-cleanup-action- just-before-node-js-exits) - process.on ('SIGINT',() => {...}) – Midas

ответ

20

Вы можете использовать Node.js core process 'exit' event так:

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

Конечно, основной цикл событий перестанет работать после того, как функция выхода возвращается, так что вы не можете планировать любые таймеры или обратные вызовы в том, что (например, любой ввод-вывод должен быть синхронным).

1

Если вам необходимо получить доступ что-то в текущей области, вы можете bind() как в этом ответе: https://stackoverflow.com/a/14032965/1410035, но вы можете связать 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}));