2013-08-21 3 views
17

मैं निम्नलिखित समारोह है कि डेटाबेस से hexcode हो जाता हैMySQL क्वेरी से परिणाम लौटने Node.js

function getColour(username, roomCount) 
{ 
    connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result) 
    { 
     if (err) throw err; 
     return result[0].hexcode; 
    }); 
} 

मेरे समस्या यह है कि मैं कॉलबैक फ़ंक्शन में परिणाम लौटने हूँ लेकिन getColour काम नहीं करेगी है कुछ भी वापस करो। मैं getColour फ़ंक्शन result[0].hexcode के मान को वापस करने के लिए चाहता हूं।

पल जब मैं getColour नामक

यह वापस नहीं करता है कुछ भी

मैं में मान की तरह

function getColour(username, roomCount) 
{ 
    var colour = ''; 
    connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result) 
    { 
     if (err) throw err; 
     colour = result[0].hexcode; 
    }); 
    return colour; 
} 

लेकिन निश्चित रूप से चयन करें क्वेरी समय से समाप्त हो गया है कुछ कर रही कोशिश कर लिया है colour

उत्तर

37

आपको केवल कॉलबैक पर डीबी क्वेरी से परिणामों पर प्रसंस्करण करना है। बिलकुल इसके जैसा। ?

function getColour(username, roomCount, callback) 
{ 
    connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result) 
    { 
     if (err) 
      callback(err,null); 
     else 
      callback(null,result[0].hexcode); 

    }); 

} 

//call Fn for db query with callback 
getColour("yourname",4, function(err,data){ 
     if (err) { 
      // error handling code goes here 
      console.log("ERROR : ",err);    
     } else {    
      // code to execute on data retrieval 
      console.log("result from db is : ",data); 
     }  

}); 
+0

धन्यवाद मैं अभी भी एक ही समस्या है, जहां मैं एक चर (जैसे वर रंग = getColour (... के लिए कॉलबैक का परिणाम असाइन नहीं कर सकते हैं, हालांकि - 'वर रंग इस संभव है – Pattle

+0

= getColour (.' संभव नहीं है। लेकिन फिर भी आप रंग को ग्लोबल वैरिएबल के रूप में रख सकते हैं और इसे कॉलबैक से सेट कर सकते हैं। लेकिन अगर आप डीबी fetch के पूरा होने पर चीजों को ट्रिगर करना चाहते हैं, तो आपको उन्हें कॉलबैक में रखना होगा। – mithunsatheesh

+0

thnak you @mithunsatheesh। मैं बाहरी getColour से डेटा कैसे प्राप्त कर सकता हूं? – Diamond

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