Alles, was ich tun möchte, ist einige Daten einfügen, wenn meine Datenbank das nicht hat, so setze ich Insert SQL in meine Callback-Funktion meiner Select SQL, aber ich habe Fehler dies wie:Node.js und mysql Callback: Abfrage in Abfrage Callback
{ [Error: Cannot enqueue Query after invoking quit.] code: 'PROTOCOL_ENQUEUE_AFTER_QUIT', fatal: false }
mein Code-Schnipsel ist hier:
db.query('SELECT count(*) as Resultcount FROM tablename WHERE email = ? and password = ?', [post.email, post.password], function(error, result){
if (result[0].Resultcount == 0){
var query2 = db.query('INSERT INTO tablename SET ?', [post], function(err, result) {
if(err){
console.log(err);
}
console.log(result);
});
}
else{
console.log('have data already');
}
});
Könnte jemand mir einen Rat geben? Dank
---- ---- Update
tatsächlich, die Callback-Funktion von ausgewählten SQL ist nicht eine anonyme Funktion, mein Code-Schnipsel über db.end() ist wie folgt:
var QueryResults = new queryResultFuntion(Back_results);
db.query('SELECT count(*) as Resultcount FROM tablename WHERE email = ? and password = ?', [post.email, post.password], QueryResults.queryResult);
db.end();
Schließen Sie Ihre DB-Verbindung irgendwo nach diesem Code? – loganfsmyth
Ja, wenn ich db.query ('select ...') beende, habe ich db.end(); – Arvin
Das bedeutet, dass zu dem Zeitpunkt, zu dem Ihre INSERT-Abfrage ausgeführt wird, die Verbindung geschlossen wird. Bitte fügen Sie diesen Code zu Ihrer Frage hinzu und ich werde eine Antwort geben. – loganfsmyth