चूँकि node.js गैर-अवरुद्ध और अतुल्यकालिक है, तो इस कोड में:
client.query("SELECT * FROM users", function (error, results, fields) {
if (error) {
//
}
if (results.length > 0) {
self.users = results;
}
});
console.log(this.users);
जब आप इसे कंसोल में लॉग इन करने का प्रयास कर रहे हैं तो डीबी से डेटा शायद अभी तक उपयोगकर्ता चर में लोड नहीं होता है। यदि आप अपना console.log
. करते हैं तो आप इसे देख सकते हैं उदाहरण के लिए क्वेरी के भीतर ऑपरेशन:
client.query("SELECT * FROM users", function (error, results, fields) {
if (error) {
//
}
if (results.length > 0) {
console.log(results);
}
});
ऑपरेशन समाप्त होने पर परिणाम को एक चर में पास करने के लिए आप अपने क्लाइंट डीबी कॉल को कॉलबैक पैरामीटर के साथ एक फ़ंक्शन में लपेट सकते हैं और कॉलबैक लागू होने पर अपना चर सेट कर सकते हैं, उदाहरण के लिए:
function query(sql, callback) {
client.query(sql, function (error, results, fields) {
if (error) {
//
}
if (results.length > 0) {
callback(results);
}
});
}
query("SELECT * FROM users", function(results) {
self.users = results;
console.log(self.users);
});
उपरोक्त कोड सिर्फ एक अवधारणा है।