複数の SQL クエリを実行しようとしています。
問題は、node.js の使用を忘れてしまうため、変数がスコープ外に出続けることです。await
C#のキーワードに似た方法を見つけようとしています。
これが私の壊れたコードです。これにより、私が達成しようとしていることをより明確にする必要があります。
function getTopicsForMessages(request, results)
{
//Get topics for this message
var queryString = "SELECT ripple_messenger.TopicTypes.name, ripple_messenger.TopicTypes.imageUri";
queryString += " FROM ripple_messenger.MessageTopics JOIN ripple_messenger.TopicTypes";
queryString += " ON (ripple_messenger.MessageTopics.topicId = ripple_messenger.TopicTypes.id)";
queryString += " WHERE messageId = ?";
for (var i = 0; i < results.length; i++)
{
mssql.query(queryString, [results[i].id],
{
success: function (topicsResults)
{
results[i].topics = topicsResults;
},
error: function (err) {
console.error("SQL Read error: " + err);
request.respond(statusCodes.INTERNAL_SERVER_ERROR, "SQL Query failed on read");
}
});
}
//Continue... once all queries have executed successfully.
}
これは、ノードのやり方をよく知らないという問題だと思います。
await キーワードに似たものを許可する Node.js のいくつかのパッケージ/オプションについて読みましたが、Azure Mobile Services を使用しているため、それらを実際に使用できるかどうかはわかりません。
また、SQLでこのクエリをよりうまく実行できると確信しています。しかし、繰り返しますが、私はその方法がよくわかりません。
よろしくお願いします。
ダニー