2014-07-10 8 views
5

मैं कैसे जांच सकता हूं कि mysql (node.js) में कोई मिलान नहीं मिला है?node.js mysql क्वेरी में, जांचें कि कोई मिलान नहीं मिला

mysql.query("select * from table1 where name = 'abcd'", function(error, result, field) { 
    if(error) { 
     exist(error); //No error 
    } else if(result) { 
     console.log(result); //displays '[]' 
     exist(null, result); 
    } else { 
     exist(null, null); //It is never execute 
    } 
}); 
function exist(error, result) { 
    if(result) 
     console.log("Test:"+result); //Executed and displays 'Test:' 
} 

मेरे डेटाबेस में नाम = 'abcd' नहीं है। तो, मैं कैसे जांच सकता हूं कि क्वेरी मेल नहीं खाती है?

उत्तर

7

आप अपनी क्वेरी के परिणाम के रूप में एक खाली सरणी ([]) प्राप्त कर रहे हैं, क्योंकि जैसा कि आपने कहा, अपने डेटाबेस name = 'abcd' के साथ किसी भी पंक्ति शामिल नहीं है।

जब आप ऐसा करेंगे:

if (result) { 
    if (result) 
    console.log("Test:" + result); 

, आप if क्योंकि जावास्क्रिप्ट का मूल्यांकन करता है [] के लिए true प्रवेश करेंगे। this article here पर एक नज़र डालें, जो बताता है कि कैसे जावास्क्रिप्ट true और false मानों का मूल्यांकन करता है।

यदि आपका परिणाम सरणी रिक्त है की जाँच करने के लिए एक बेहतर तरीके से करना है:

if (result.length > 0) { 
    if (result) 
    console.log("Test:" + result); 
+1

'अगर (result.length!)' यहां बिल्कुल ठीक काम करेंगे। –

+0

@ बेनफोर्ट्यून सहमत हैं, चूंकि जावास्क्रिप्ट '0' के लिए 'झूठी' का मूल्यांकन करता है। यह सिर्फ इतना है कि मुझे कोड लिखने के उस वर्बोज़ तरीके पसंद है। –

+0

धन्यवाद, दोनों सुझाव काम कर रहे हैं। – Rejaul

संबंधित मुद्दे