Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kueri bersarang di node js menggunakan mysql

Saya melihat dua masalah dalam kode Anda:

  • Anda memanggil connection.end() sinkron, tetapi kueri Anda berjalan dalam aliran asinkron. Anda harus memanggil connection.end() hanya jika Anda telah menyelesaikan kueri kedua.
  • Anda menggunakan for biasa loop untuk menjalankan panggilan asinkron (Anda keluar dari loop).

Untuk mencapai apa yang Anda coba lakukan, Anda harus mempertimbangkan skenario asinkron tersebut. Anda dapat menggunakan promises atau modul seperti async , yang memberi Anda banyak metode untuk menangani aliran asinkron, seperti async.each() :

connection.query(queryString, function(err, rows, fields) {
    if (err) throw err;

    async.each(rows, function (row, callback) {
        console.log('Product Name: ', row.product_name);
        var emp_query = 'SELECT * FROM tbl_employer';
        connection.query(queryString, function(emp_err, emp_rows, emp_fields) {
            if (emp_err) callback(emp_err);
            for (var e in emp_rows) {
                console.log('Employer Name: ', emp_rows[e].company_name);
            }
            callback();
        }); 
    });
    }, function (err) {
        connection.end();
    }
});

Sekarang ini akan menjamin bahwa connection.end() hanya akan dipanggil setelah semua pertanyaan Anda selesai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. asp.net / MySQL:Akses ditolak untuk pengguna ''@'localhost' (menggunakan kata sandi:TIDAK)

  2. Fungsi MySQL CHAR() dan Output UTF8?

  3. Backup database MySQL secara otomatis di server linux

  4. Database Python dan MySQL:Pengantar Praktis

  5. Cara Mengaktifkan Cache Permintaan MySQL