Anda menggunakan loop sinkron untuk menerapkan sumber daya asinkron. Anda tidak bisa melakukan itu.
Loop while Anda mengisi kumpulan database dan kemudian mengulang sekali lagi dan memblokir getConnection
yang kemudian memblokir seluruh loop acara Node.js.
Anda dapat menggunakan async
paket untuk melakukan loop while asinkron.
async#forever panggilan akan melakukan apa yang ingin Anda capai.
Juga, kode Anda membocorkan koneksi database. Anda harus meletakkan connection.end()
pertama dalam panggilan balik kecuali Anda akan menggunakan koneksi yang sama lagi. Jika tidak, kesalahan akan membocorkan koneksi database.
pool.getConnection(function (err, connection) {
if (err) throw err;
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
connection.end(); // return to pool before evaluating error.
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
});