Express.js shutdown hook

前端 未结 4 588
旧巷少年郎
旧巷少年郎 2021-01-03 18:37

In Express.js, is there someway of setting a callback function to be executed when the application shuts down?

相关标签:
4条回答
  • 2021-01-03 18:46

    The express team recommends the terminus package:

    https://expressjs.com/en/advanced/healthcheck-graceful-shutdown.html

    0 讨论(0)
  • 2021-01-03 18:56

    You could use the node.js core process 'exit' event like so:

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

    Of course, the main event loop will stop running after the exit function returns so you can't schedule any timers or callbacks from within that function (e.g. any I/O must be synchronous).

    0 讨论(0)
  • 2021-01-03 18:56

    There is process.on('exit', callback):

    process.on('exit', function () {
      console.log('About to exit.');
    });
    
    0 讨论(0)
  • 2021-01-03 19:02

    If you need to access something in the current scope, you can bind() like in this answer: https://stackoverflow.com/a/14032965/1410035 but you might want to bind 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}));
    
    0 讨论(0)
提交回复
热议问题