私はnode.jsがイベント駆動型であることを知っていますが、私はこの非同期を行うべきですが、私はそれを行う方法を見つけることができません。Node.jsの同期mysql
ので、私はそれが同期します。この
var querystr = "SELECT * FROM groups";
var result = "";
dbClient.query(querystr, function (err, res, fields) {
if (err) {
console.log(err);
return;
}
for(var i in res) {
result = result + "@" +res[i].name + " =";
for (var j in res[i].members.split(",")) {
var memberquery;
if (j.substr(0,1) == "@") {
memberquery = "SELECT name FROM groups WHERE id = "+j.substr(1, j.length-1);
} else {
memberquery = "SELECT username FROM users WHERE id= "+j;
}
dbClient.query(memberquery, function(err, memres, fields) {
var membername = "";
if (typeof memres[0].username == "undefined") {
membername = "@"+memres[0].name;
} else {
membername = memres[0].username;
}
result = result + " " + membername;
});
}
result = result + "\n";
}
});
問題は内部用で持っています。 は基本的に私はグループをチェックし、期待される出力は、私は通常、この種の問題については、以下のいずれかのようパターンを使用
Group1 = member, member
Group2 = member, member
クイックアサイドのカップル:最初のクエリ結果の最初のパスを実行し、2回目のパスでメンバーにループすると、SELECT名前FROMグループクエリが回避できます。さらに、DBが正常に正規化されていれば、すべてのテーブル照合作業を単一の照会で行うことができます。 – Metal