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

SELECT não funciona em node.js


Como .query() é um método assíncrono, você não poderá return o valor como o retorno de chamada será chamado depois o return é avaliado.

Você terá que continuar o callback padronizar:
function query(sql, callback) {
    client.connect();
    client.query(sql, function (err, rows, fields) {
        if (err) {
            callback(err);
        else
            callback(null, rows, fields);
    });

    client.end();
}

Correção:Parece client.end() permitirá que as consultas atuais terminem antes que a conexão seja realmente fechada.

No entanto, chamar .end() dentro do retorno de chamada é comum para muitas APIs, pois elas cortam quaisquer ações pendentes.