2016-04-29 238 views
0

我有一個使用Express的Node.js應用程序。在那個應用程序中,我有一個塊,看起來像這樣:Express.js - 監聽關機

const app = require('./app'); 
const port = process.env.PORT || 8080; 
const server = app.listen(port); 

server.on('listening',() => 
    console.log(`Application launched on ${app.get('host')}:${port}`) 
); 

這成功地工作。當啓動listening事件時,它會成功打印消息。我的問題是,有什麼事情我可以聽,因爲當我的服務器停止/關閉?或者當服務器停止監聽?

我想在這種情況下做一些清理。

+0

不知道。這似乎是一個錯誤。 – tadman

+1

你也是指['exit' event](https://nodejs.org/api/process.html#process_event_exit)? – tadman

+2

@tadman反引號是es6模板字符串。 –

回答

1

爲什麼你用你的`console.log`進入反引號你可以聽節點的處理事件關機

// listen for TERM signal .e.g. kill 
 
process.on ('SIGTERM', doSomething); 
 

 
// listen for INT signal e.g. Ctrl-C 
 
process.on ('SIGINT', doSomething); 
 

 
//or even exit event 
 

 
process.on('exit',doSomething);

+1

您可能想要添加這些事件之間的區別 – Yerken

1

你應該能夠捕獲這與exit

process.on('exit', function() { 
    console.log('Process terminating.') 
}); 

正如你不能推遲任何文檔中指出的那樣,這是一個錘子買賣。

+0

'process'從哪裏來? –

+0

它應該是一個始終存在於Node內的全局。 – tadman