sql >> Databasteknik >  >> RDS >> Mysql

Använder node-mysql i en funktion

Detta är ett vanligt misstag bland async/nodejs nybörjare. Du har i princip packat in en asynkronfunktion i en synkfunktion som bryter ner karaktären hos nodens händelseslinga. Returuttrycket måste ersättas med ett återuppringning. Se nedan:

// 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);
});

Enligt konvention skickar vi i Nodejs alltid ett felobjekt först i återuppringningen. I det här fallet, eftersom det inte finns något fel att fånga, skickar vi null i dess ställe.




  1. VÄLJ den senaste posten med ett icke-nullvärde i en kolumn

  2. begäran om räkning för dokument i apache solr

  3. Datakälla avvisade upprättande av anslutning, meddelande från server:För många anslutningar

  4. PHP/MySQL Infoga null-värden