2017-03-21 13 views
1

私の問題は、expressjsバックエンドからsqliteデータベースへのデータベース接続をいつ終了するかを理解することです。ノードsqlite3でデータベースを閉じるタイミングを教えてください。

私が基本的に達成したいのは、サーバーの稼働時間中にオープンされ、サーバーのシャットダウン時に閉じられるデータベース接続です。

var express = require('express') 
var app = express() 
var sqlite3 = require('sqlite3').verbose(); 

var db = new sqlite3.Database(data/Test.db); 

//use db as needed 

var server = app.listen(8081, function() { 
    var host = server.address().address 
    var port = server.address().port 
    console.log("Example app listening at http://%s:%s", host, port) 
}); 

//on shutdown db.close(); 

私は、これらの脅威を見ていた:

Stack overflow: process.on('exit', callback)

Github issue: App has no app.close()

をしかし、私は私のctrl+cと特急サーバーを殺す場合は提案の解決策は私のために動作しないでしょう。

サーバーのシャットダウン時に開いているデータベース接続をどのように処理するのがベストプラクティスですか?

答えて

3

SIGINTあなたが探している信号です。ほとんどの端末はCtrl+CSIGINTを送信します。

process.on('SIGINT',() => { 
    db.close(); 
    server.close(); 
}); 
+0

私のために働いた -

あなたはこのような何かを試みることができます。私はこれがとにかく送信されると思ったので、 'SIGTERM'を見ていました。 – Link1510

+0

@ Link1510 https://nodejs.org/docs/latest/api/process.html#event_exit_に標準信号を送ることをおすすめします。 – GPX

関連する問題