我应该什么时候开始和结束我的Node.js SQL 连接,我应该从一开始就使用池化吗?



我正在启动我的第一个 Express Web 应用程序。我不太明白何时/何地开始我的SQL连接以及何时应该结束它的逻辑。

在线复制粘贴项目以开始使用,我在同一个db.js文件中有一个连接和关闭。似乎无论在哪里需要它,它都会立即建立连接。无论是在 APP.JS入口点,还是只是某个模型文件需要它的事实。

因此,删除 connection.end(( 方法解决了我无法插入查询的问题,因为"调用 quit 后无法排队查询"。但是如果我在函数插入后手动连接并结束,我需要创建一个新的数据库对象,否则 connect(( 甚至不起作用。

我真的应该在哪里"启动"连接。从应用程序中的要求.js?这甚至重要吗,因为它从任何地方的任何需求开始?何时键入 connection.end(( 命令?它不像桌面应用程序,因此在VS Code上杀死节点服务器无论如何都会结束它。

我只是不明白,Node.js 文档并没有真正为我详细说明。我应该使用池化吗?在哪里关闭连接?为什么是这样或那样的?我真的试图用谷歌搜索它,但没有什么比为什么和在哪里约定。

通常,应在查询执行之前创建数据库连接,并在查询执行后立即关闭。

长期数据库连接可能会耗尽服务器的资源,并可能导致连接限制耗尽(客户端驱动程序通常会设置上限(。应用程序中的并发使用越多,就越容易出现导致问题的长寿命连接。

从头开始创建连接是一个资源和耗时的过程。因此,您绝对应该使用连接池,这使得连接的"创建"成为简单地从池中获取可用连接的快速操作。

通过尽快将连接释放回池,可以释放它供其他工作线程使用。

https://softwareengineering.stackexchange.com/a/142068/167591

最新更新