0

我有一个基本的类似 Twitter 的应用程序,当一个用户在线时可以正常工作。但是,当多个用户联机并尝试执行 SQL 查询时,服务器会崩溃。

发生这种情况是因为该函数为第一个用户关闭了数据库,而第二个用户仍在函数中,然后第二个用户尝试关闭已经关闭的数据库,导致崩溃。

下面以一个基本函数为例:

function showAllUsers(req, res){
  dbConnect();
  var query = 'SELECT * FROM USERS';
  connection.query(query, function (err,rows,fields){
    if (err) {
        throw err;
    }
    dbClose(req,res);
    console.log(rows);
    res.render('allUsers', { user: req.user, message: req.flash('info'), users: rows })
  })
}

我正在使用来自 npm 的 mysql 包,但我假设我没有正确使用它。我目前在每次查询之前打开数据库并在之后立即关闭它。

有没有更安全的方法可以做到这一点,或者我可以让它保持打开状态直到服务器退出?

4

1 回答 1

1

使用连接池为我解决了这个问题。

于 2014-01-17T17:45:58.043 回答