如何在Node.js中使用`mysql`包正确终止连接

uqjltbpv  于 2023-08-02  发布在  Mysql
关注(0)|答案(1)|浏览(86)

我有一个愚蠢的问题,但它占据了我的脑海。
我在Node.js中使用为项目安装的mysql包实现了一个API。我用它是这样的:

// Creating Connection
const connection = mysql.createConnection({
    host: host,
    user: user,
    password: password,
    database: database,
    multipleStatements: true,
});

// An Endpoint
router.get("/getAll", function (_, res) {
  connection.query("SELECT * FROM admin", (error, data) => {
    if (!error)
      res.status(200).json({
        status: 200,
        data,
      });
  });
});

...

字符串
这是可行的,但我的问题是:我不会遇到任何连接问题?因为我没有关闭连接,还有其他端点。
如果我应该关闭它,你能给予我举个例子吗?因为我使用了connection.end(),它抛出了一些我目前不记得的错误。
谢啦,谢啦

fzsnzjdm

fzsnzjdm1#

在您的例子中,由于mysql在应用程序的生命周期内持续存在,所以您不需要手动关闭它,除非应用程序崩溃或退出。对于处理大量请求的web应用程序,频繁地打开和关闭mysql会影响性能。更好的方法是使用连接池,该连接池将根据需要自动打开和关闭连接。

//process exit
process.on('exit', (code) => {
    if (connection) {
    connection.end(error => {
      if (error) {
        console.error('Error ending the connection: ', error);
      } else {
        console.log('MySQL connection ended successfully');
      }
    });
  }
});

//uncaughtException
process.on('uncaughtException', (err, origin) => {
    if (connection) {
    connection.end(error => {
      if (error) {
        console.error('Error ending the connection: ', error);
      } else {
        console.log('MySQL connection ended successfully');
      }
    });
  }
});

个字符

相关问题