Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Node.js में सिंक्रोनस mysql

मैं आमतौर पर इस प्रकार की समस्या के लिए नीचे दिए गए पैटर्न की तरह एक पैटर्न का उपयोग करता हूं। संक्षेप में:चीजों की एक सूची प्राप्त करें, फिर सूची को संभालने के लिए एक फ़ंक्शन को कॉल करें; सूची पूरी होने तक वह फ़ंक्शन स्वयं को कॉल करता है; जैसे ही आप संचायक में जाते हैं, परिणाम एकत्रित करें; जब सूची खाली हो, तो कॉलबैक के माध्यम से जो कुछ भी आपने जमा किया है उसे वापस कर दें। @Andrey Sidorov ने अपनी प्रतिक्रिया में जो दिखाया, उसे पूरा करने का यह एक और तरीका है।

//cb is (err, res) 
function getData(cb){
  var querystr = "SELECT * FROM groups";
  var result = "";

  dbClient.query(querystr, function (err, res, fields) {
      if (err)
          cb(err);
      else {
        var groups = [];
        for (var ndx in res)
          groups = groups.concat(res[ndx].members.split(","));

        getMembers(groups, [], cb);
      }
  });
}

function getMembers(members, sofar, cb){
  var member = members.shift();

  if (!member)
    cb(null, sofar);
  else {
    var memberquery;
    var params;

    if (member.substr(0,1) == "@") {
        memberquery = "SELECT name FROM groups WHERE id = ?";
        params = [member.substr(1, member.length-1)];
    } else {
        memberquery = "SELECT username FROM users WHERE id = ?";
        params = [member];
    }

    dbClient.query(memberquery, params, function(err, res) {
      if (err)
        cb(err);
      else {
        var membername = "";
        if (typeof res[0].username == "undefined") {
            membername = "@" + res[0].name;
        } else {
            membername = res[0].username;
        }

        sofar.push(membername);

        getMembers(members, sofar, cb);
      }
    });
  }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक कॉलम या दूसरे से यूजर आईडी प्राप्त करने के साथ सिंगल रो फ्रेंडशिप डेटाबेस स्कीमा

  2. केस सेंसिटिव डेटाबेस क्वेरी

  3. मैसकल:डॉट के बाद दशमलव की एक निश्चित संख्या से अधिक वाली प्रत्येक पंक्तियों को कैसे प्राप्त करें?

  4. MySQL फ़ंक्शन दो अक्षांश और देशांतर के बीच की दूरी की गणना करने के लिए

  5. org.json.JSONException:मान <br प्रकार java.lang.String को JSONObject में परिवर्तित नहीं किया जा सकता है