何时使用node-sqlite3和express关闭数据库?

7
我的问题是如何确定从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问题:App没有app.close() 但如果我使用ctrl+c 杀死我的express服务器,建议的解决方案对我不起作用。
那么在服务器关闭时处理打开的数据库连接的“最佳做法”是什么?
1个回答

14

SIGINT 是你要寻找的信号;大多数终端在按下 Ctrl+C 时会发送一个 SIGINT

你可以尝试像这样 -

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

那对我有用。我一直在看'SIGTERM',因为我认为这将被发送。 - Link1510
@Link1510 我建议你在这里查看标准信号 - https://nodejs.org/docs/latest/api/process.html#event_exit_ - GPX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接