5

我的问题是弄清楚何时关闭从 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();

我查看了这些威胁:

堆栈溢出:process.on('exit', callback)

Github 问题:App 没有 app.close()

但是,如果我用ctrl+c.

那么关于如何在服务器关闭时处理打开的数据库连接的“最佳实践”是什么?

4

1 回答 1

13

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

你可以试试这样的 -

process.on('SIGINT', () => {
    db.close();
    server.close();
});
于 2017-03-21T13:11:45.177 回答