0

私は基本的なTwitterのようなアプリを持っており、1人のユーザーがオンラインのときに正常に動作します。ただし、複数のユーザーがオンラインになり、SQLクエリを実行しようとすると、サーバーがクラッシュします。

これは、2番目のユーザーがまだ機能の途中である間に、関数が最初のユーザーのデータベースを閉じ、次に2番目のユーザーがすでに閉じられているデータベースを閉じようとしてクラッシュするために発生します。

例として、基本的な関数を次に示します。

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 に答える