Percubaan untuk mencipta skrip cron untuk membuang pangkalan data MySQL menghasilkan fail kosong walaupun berjaya menyimpan fail. Pencetakan log juga menghasilkan rentetan kosong.
Isu ini berpunca daripada beberapa masalah dalam kod yang disediakan:
Kod berikut membetulkan isu ini dan menyediakan fungsi penyelesaian:
var mysql_backup = function() { this.backup = ''; this.mysql = require('mysql'); this.init = function() { this.connection = this.mysql.createConnection({ user: 'root', password: 'root', database: 'test' }); // Connect to the database this.connection.connect(function(err) { if (err) console.log(err); db.get_tables(function() {}); }); }; this.query = function(sql, callback) { this.connection.query(sql, function (error, results, fields) { if (error) { throw error; } if (results.length > 0) { callback(results); } }); }; 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_test, function(r){ for (t in r) { me.backup += "DROP TABLE " + r[t].Table + "\n\n"; me.backup += r[t]["Create Table"] + "\n\n"; } counter--; if (counter === 0) { me.save_backup(); me.connection.destroy(); } }); } }); }; this.save_backup = function() { var fs = require('fs'); fs.writeFile("./backup_test.txt", this.backup, function(err) { if(err) { console.log(err); } else { console.log("The file was saved!"); } }); } }; var db = new mysql_backup; db.init();
Pertimbangkan untuk menggunakan:
Atas ialah kandungan terperinci Mengapakah pangkalan data MySQL saya dibuang menggunakan Node.js menghasilkan fail kosong walaupun fail berjaya disimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!