Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwenden von node-mysql in einer Funktion

Dies ist ein häufiger Fehler unter Async/Nodejs-Anfängern. Sie haben im Wesentlichen eine asynchrone Funktion in eine Synchronisierungsfunktion eingeschlossen, die die Art der Ereignisschleife des Knotens aufschlüsselt. Der Rückgabeausdruck muss durch einen Callback ersetzt werden. Siehe unten:

// Method
function getUserInfo (userID, dynamicField, callback) {
    var query = connection.query('SELECT '+dynamicField+' from users WHERE userID = '+connection.escape(userID));
    query.on('result', function(row) {
        callback(null, row.dynamicField);
    });
};

// Implementation
getUserInfo(8, userEmail, function(err, result){
    console.log(err || result);
});

Per Konvention übergeben wir in Nodejs immer zuerst ein Fehlerobjekt im Callback. Da in diesem Fall kein Fehler erfasst werden muss, übergeben wir stattdessen null.