Dalam percubaan untuk membuang pangkalan data MySQL, isu timbul apabila fail dibuat tetapi kekal kosong. Artikel ini mengkaji kemungkinan sebab untuk tingkah laku ini dan menyediakan penyelesaian berdasarkan coretan kod yang diberikan.
Masalah awal berpunca daripada kegagalan untuk menyambung ke pangkalan data sebelum mengeluarkan pertanyaan. Selain itu, kaedah connection.destroy() dipanggil lebih awal, mengakibatkan gangguan panggilan SQL yang belum selesai.
Untuk membetulkan isu ini, pengubahsuaian berikut telah dibuat :
<code class="javascript">var mysql_backup = function(){ //... this.connection.connect(function (err, empty) { //... }); //... this.get_tables = function(callback){ var counter = 0; var me = this; this.query('SHOW TABLES', function(tables) { for (table in tables){ counter++; me.query( 'SHOW CREATE TABLE ' + tables[table].Tables_in_mvc, function(r){ //... counter--; if (counter === 0){ me.save_backup(); me.connection.destroy(); } } ) } }); }; //... }; var db = new mysql_backup; db.init(); db.get_tables();</code>
Untuk meningkatkan kebolehbacaan dan keberkesanan kod, penambahbaikan selanjutnya boleh termasuk:
Dengan membetulkan isu sambungan, mengatur susunan pelaksanaan panggilan balik dengan sewajarnya, dan menjejaki panggilan SQL yang tertunggak, masalah mengosongkan fail boleh diselesaikan, membenarkan "lambakan" pangkalan data MySQL yang berjaya.
Atas ialah kandungan terperinci Mengapa Fail Dump MySQL NodeJS Saya Kosong dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!