node.js - 什么时候用 node-sqlite3 和 express 关闭数据库?

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

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

最佳答案

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

你可以试试这样的——

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

关于node.js - 什么时候用 node-sqlite3 和 express 关闭数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928055/

相关文章:

node.js - Node + Docker撰写: Development and production setup

javascript - 在 Chrome 中禁用缓存的情况下 React Rerender

linux top -Hp [PID] 显示 Node 进程有4个 Node 线程和4个v8工作线程

java - 如何在 JavaFX 中正确连接 SQLite 与文本字段和标签?

node.js - 替换mongodb文档而不附加属性

javascript - 引用错误: YouTube is not defined/YouTube API

javascript - 如何返回一个对象而不是数组?

node.js - 在 Express 路由器中使用 mongoDB

mysql - 为什么 SQLite 和 MySQL 在 subselect 上没有给出相同的结果?

android - 在 TextView 中显示 ListView 的选定值逻辑错误 "android.database.sqlite.SQLiteCursor@4274b148"