2017-03-21 17 views
1

제 문제는 익스프레스 백엔드에서 sqlite 데이터베이스로 언제 데이터베이스 연결을 닫을지를 알아내는 것입니다.언제 node-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