何时使用node-sqlite3关闭数据库并表达?

时间:2017-03-21 13:05:54

标签: node.js express sqlite node-sqlite3

我的问题是找出何时关闭从expressjs后端到sqlite数据库的数据库连接。

我基本上想要实现的是一个数据库连接,它在整个服务器正常运行时间内打开,并在服务器关闭时关闭。

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杀死我的快递服务器,建议的解决方案对我不起作用。

那么最佳做法是什么?'如何在服务器关闭时处理打开的数据库连接?

1 个答案:

答案 0 :(得分:6)

SIGINT是您正在寻找的信号;大多数终端在SIGINT上发送Ctrl+C

你可以尝试这样的事情 -

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