Node.js API NodeJS循环或错误处理问题:池连接未关闭(MYSQL)?
仍然在玩我的第一个API NodeJS应用程序 我当前的MYSQL配置是:Node.js API NodeJS循环或错误处理问题:池连接未关闭(MYSQL)?,node.js,express,database-connection,Node.js,Express,Database Connection,仍然在玩我的第一个API NodeJS应用程序 我当前的MYSQL配置是: const mysql = require('mysql'); var pool = mysql.createPool({ host:'localhost', user: 'abc', password: 'abc', database : 'abc', multipleStatements: true, connectionLimit: 10 });
const mysql = require('mysql');
var pool = mysql.createPool({
host:'localhost',
user: 'abc',
password: 'abc',
database : 'abc',
multipleStatements: true,
connectionLimit: 10
});
module.exports ={
connection : pool
}
我的“订单列表”部分是获取未完成订单列表的一种方法。
这个页面工作正常,但是在点击几个按钮后,程序会挂起,直到我重新启动API
代码:
直到我开始使用这个池连接加上错误处理,这个问题才发生
现在我对NodeJS(以及一般的编码)非常陌生,但是如果我在终端上运行这个:
lsof-i tcp:3000
然后我可以看到该端口上运行的所有内容。
当我使用ot做这个(预连接池)时,我只会得到我的侦听的node:PID
现在,在运行任何API端点后的大约10秒钟内,我得到以下结果:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 18993 myserver 18u IPv6 198273222 0t0 TCP *:hbci (LISTEN)
node 18993 myserver 19u IPv6 198273223 0t0 TCP vps.myserver.com.au:hbci->myIPAddress:59264 (ESTABLISHED)
现在我想这是仍然存在的联系。。。所以连接没有被关闭?
这可能是问题所在吗?
我只是不明白我的错误处理出了什么问题,我得到的是挂起,而不是崩溃或其他什么
我不得不改变到池连接,因为它在这里和那里失去了连接,在阅读了关于它的文章后,显然池是最好的方式,但我一定错过了什么?
是否需要释放连接?您正在使用
.getConnection
方法从连接池中获取连接实例。完成连接实例后,需要使用connection.release()关闭连接代码>
如果不这样做,那么这个连接就不会被释放,基本上,新请求将没有任何连接可供使用
或者,您可以使用pool.query
方法在使用后自动关闭连接
您可以查看此答案以了解更多详细信息 太好了,谢谢!几天来,我一直在努力寻找这些代码,以将其放入db配置部分,我只是不知道如何实现它!!现在全部工作:)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 18993 myserver 18u IPv6 198273222 0t0 TCP *:hbci (LISTEN)
node 18993 myserver 19u IPv6 198273223 0t0 TCP vps.myserver.com.au:hbci->myIPAddress:59264 (ESTABLISHED)