2016-04-29 11 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

ないあなたは 'console.log'エントリにバッククォートを使用している理由を確認のために、ノードのプロセスイベントに耳を傾けることができます。それは間違いのようです。 – tadman

+1

また、['exit'イベント](https://nodejs.org/api/process.html#process_event_exit)を意味しますか? – tadman

+2

@tadmanバッククォートはes6テンプレート文字列です。 –

答えて

1

あなたはシャットダウン

// 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

ノード内に常に存在するグローバルである必要があります。 – tadman

関連する問題