Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando node-mysql em uma função


Este é um erro comum entre iniciantes em async/nodejs. Você basicamente envolveu uma função assíncrona dentro de uma função de sincronização que decompõe a natureza do loop de eventos do nó. A expressão de retorno precisa ser substituída por um retorno de chamada. Veja abaixo:
// 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);
});

Por convenção, no Nodejs sempre passamos um objeto de erro primeiro no retorno de chamada. Neste caso, como não há erro para capturar, passamos null em seu lugar.