gpt4 book ai didi

mysql - 如何多次打开/关闭mysql连接?

转载 作者:行者123 更新时间:2023-11-29 16:45:53 24 4
gpt4 key购买 nike

我正在将 Node 与 mysql 一起使用,并且我有一条路线:

const mysql = require("./mysql");
router.post("/register_user", (req, res) => {
mysql.register(req.body).then((result) => {
// stuff
});
});

mysql.js:

const mysql = require("mysql");
const connection = mysql.createConnection("mysql://...");

exports.register = (req) => {
const user = { name: req.name };
return new Promise((resolve, reject) => {
// make sure user doesn't exist already
connection.query('...', [user], (err, data) => {
...

if (isNewUser) {
connection.query('INSERT INTO USER...', user, (insertErr, rows) => {
...
resolve(rows);
connection.end();
}
}
});
});
}

当我在我的应用程序中注册第一个用户时,这非常有效。但紧接着,如果我注销(在网络应用程序上),然后注册一个新用户,我会收到一条错误消息:

Error: Cannot enqueue Query after invoking quit.

为什么这不会创建新连接?

最佳答案

我假设您正在使用以下 NPM 模块 mysql如果是这种情况,那么您可以简单地使用 MySQL pooling connections

Rather than creating and managing connections one-by-one, this module also provides built-in connection pooling using mysql.createPool(config).

所以不要打电话 connection.end();你会打电话connection.release();而不是将连接返回到打开的连接池。

关于mysql - 如何多次打开/关闭mysql连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53110854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com