sql >> Base de Datos >  >> RDS >> Mysql

Usando node-mysql en una función

Este es un error común entre los principiantes de async/nodejs. Básicamente, ha envuelto una función asíncrona dentro de una función de sincronización que desglosa la naturaleza del ciclo de eventos del nodo. La expresión de retorno debe reemplazarse con una devolución de llamada. Ver a continuación:

// 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 convención, en Nodejs siempre pasamos un objeto de error primero en la devolución de llamada. En este caso, dado que no hay ningún error que capturar, pasamos nulo en su lugar.