Praticamente tudo no Node.js é assíncrono, e as funções de consulta SQL definitivamente são. Você está chamando
conn.query(query, callback)
, o que significa que a consulta é chamada e, quando houver um resultado em algum momento no futuro, sua função de retorno de chamada será chamada com o resultado para você trabalhar. Então:conn.query(query, function runThisEventually(err, rows, fields) {
if (err) {
console.error("One or more errors occurred!");
console.error(err);
return;
}
processResults(rows, fields);
});
Você não obterá o resultado imediatamente após chamar
conn.query(...)
, para que seu código faça "outras coisas" nesse meio tempo e, em algum momento, seu retorno de chamada será acionado e você poderá obter o processamento de resultados lá.