私は基本的な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パッケージを使用していますが、正しく使用していないと想定しています。私は現在、各クエリの前にデータベースを開き、直後にデータベースを閉じています。
これを行うためのより安全な方法はありますか、それともサーバーが終了するまで開いたままにしておくことができますか?