2016-12-15 24 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"); 
    }); 
ऊपर

बार-बार चलाया जाता है "कमांड" के विभिन्न मानों के लिए, इस प्रकार डेटाबेस को अलग-अलग प्रश्न उत्पन्न करते हैं। समस्या यह है कि जब कोई त्रुटि होती है, तो गलत क्वेरी console.log (कमांड) में मुद्रित हो जाती है। ऐसा इसलिए है क्योंकि क्वेरी कतार में जोड़ दी गई है, और जिस समय क्वेरी वास्तव में निष्पादित की जाती है वह समान नहीं है, इसलिए इन समयों में से प्रत्येक पर "कमांड" का मान समान नहीं है। क्या इसके चारों ओर एक रास्ता है?

नोट: 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