繁体   English   中英

我应该什么时候开始和结束我的 node.js SQL 连接,我应该只使用来自 get go 的池吗?

[英]When am I supposed to start and end my node.js SQL connection and should I just use pooling from the get go?

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

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

因此,删除 connection.end() 方法解决了我无法插入查询的问题,因为“调用退出后无法将查询入队”。 但是如果我在插入 function 之后手动连接并结束,我需要创建一个新的数据库 object,否则 connect() 将无法正常工作。

我真的应该在哪里“开始”连接。 来自 app.js 中的需求? 因为它从任何地方的任何需求开始,它甚至有关系吗? 何时键入 connection.end() 命令? 它不像桌面应用程序,因此在 VS Code 上终止节点服务器无论如何都会结束它。

我只是不明白,Node.js 文档并没有真正为我说明。 我应该使用池化吗? 我在哪里关闭连接? 为什么选择一种方式? 我真的试图用谷歌搜索它,但没有什么比约定的原因和地点更重要。

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

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

从头开始创建连接是一个资源和耗时的过程。 因此,您绝对应该使用连接池,它使连接的“创建”成为一种快速操作,只需从池中获取可用连接。

通过尽快将连接释放回池,您可以将其释放以供其他工作人员使用。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM