2016-07-19 8 views
0

更新要求が送信された後、成功/失敗応答を取得したいと考えています。mysqlを使用したnode.jsの反復クエリについて

応答に関しては、すべての更新クエリが実行された後に1つの応答を受信する必要があります。

1つの応答を受信するにはどうすればよいですか?

次のコードは、私のnode.jsサーバーの例です。

ありがとうございました!

$.ajax({ 
    url: "http://127.0.0.1:62590/updatingResourceList", 
    type: "put", 
    dataType: "text", 
    cache: false, 
    timeout: 30000, 
    data: JSON.stringify(jsonObject), 
    contentType: "application/json", 

    success: function (data) { 
     alert("Success updating the resource"); 
    }, error: function (xhr, textStatus, errorThrown) { 
     alert(textStatus + ' : ' + errorThrown); 
    } 
}); 

=========================================== ==================================

app.put('/updatingResourceList', function (request, response) { 

    var resultObj = request.body; 
    var updatedIDList = resultObj['idList']; 

    // Updating the user request format 
    var idCounting = 0; 

    for(var i = 0; i < updatedIDList.length; i++) { 

     var latest = timestamp(); 
     var resourceName = updatedIDList[i]; 
     var client = dbClient.getDBClient(); // Getting Database information. 

     client.query('UPDATE testset SET time=? WHERE resourceName=?', [latest, resourceName], function (error, results, fields) { 
      if (error) { // error 
       console.log("MySQL : Database resource update error : " + error); 
       response.status(500).end(); 
      } else { // success 
       console.log('MySQL : Success updating the resource : ' + resourceName); 
       response.status(200).end(); 
      } 
     }); 
    } 
}); 

答えて

0

問題は、各反復で応答を返送することですループの単一の応答が必要な場合は、ループの後でのみ行います。ループでは、更新結果を配列(キーはresourceNameでなければなりません)で追跡し、その結果をjsonオブジェクトとして返すことができます。

ただし、更新プログラムの一部のみがうまくいくかどうかを判断する必要があります。 OK(ステータスコード200)または最後に内部エラーが返される必要があります。

関連する問題