2016-07-19 2 views
0

업데이트 요청이 전송 된 후 성공/실패 응답을 얻고 싶습니다.mysql을 사용하는 node.js의 반복 쿼리에 관해

응답에 대해서는 모든 업데이트 쿼리를 수행 한 후 하나의 응답 을 수신해야합니다.

하나의 응답을받는 방법은 무엇입니까?

다음 코드는 내 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) 또는 끝에있는 내부 오류를 반환해야합니다.