Node.js / MySQL: Imprimiendo una consulta real en un registro de error en node.js

Tengo algún código node.js que intenta actualizar una base de datos en algo como lo siguiente:

connection.query(command, function(err,rows) { if (err){ console.log(command); console.log("ERROR"); console.log(err); return; } console.log("good"); }); 

Lo anterior se ejecuta repetidamente para diferentes valores de “comando”, generando así diferentes consultas a la base de datos. El problema es que cuando hay un error, la consulta incorrecta se imprime en la consola.log (comando). Esto se debe a que el momento en que la consulta se agrega a la cola y el momento en que la consulta se ejecuta realmente no es el mismo, por lo que el valor de “comando” en cada uno de estos tiempos no es el mismo. ¿Hay alguna forma de evitar esto?

Nota: console.log (err) imprime el error en sí mismo, y también parte de la consulta, pero solo imprime la línea donde ocurrió el error. Quiero imprimir toda la consulta.

Según los documentos , puede usar query.sql para obtener la consulta ejecutada real.

 var post = {id: 1, title: 'Hello MySQL'}; var query = connection.query('INSERT INTO posts SET ?', post, function(err, result) { // Neat! }); console.log(query.sql); // INSERT INTO posts SET `id` = 1, `title` = 'Hello MySQL' 

En este caso, será

 connection.query(command, function (err, rows) { if (err) { console.log('this.sql', this.sql); //command/query console.log(command); console.log("ERROR"); console.log(err); return; } console.log("good"); });