2016-12-15 5 views
5

でのエラーログの印刷実際のクエリ私は、次のようなもので、データベースを更新しようといくつかのNode.jsのコードがあります。のNode.js/MySQLの:Node.jsの

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

を上記繰り返し実行されます"command"の値が異なるため、データベースに対して異なるクエリが生成されます。問題は、エラーが発生したときに間違ったクエリがconsole.log(コマンド)に出力されることです。これは、クエリがキューに追加される時間とクエリが実際に実行される時間が異なるため、これらの時間のそれぞれでの "command"の値が同じではないためです。これを回避する方法はありますか?

注:console.log(err)は、エラー自体とクエリの一部を出力しますが、エラーが発生した行のみを出力します。私は全体のクエリを印刷したい。

答えて

12

docsによると、query.sqlを使用すると、実際に実行されたクエリを取得できます。この場合

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' 

、それが可能

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"); 
}); 
+0

は私のために動作しませんでしたので、また私は、ドキュメントでそれを見ています。 – Iiridayn

+0

私のために働いた... – Marin