2017-11-04 15 views
0

내 프로젝트에 평균 기술을 사용하고 있습니다. Node.js에 callbacks을 사용해야합니다. 여기에는 데이터베이스의 사용자 항목을 업데이트하는 기능이 있습니다. 데이터베이스에 저장하기 전에 먼저 데이터의 유효성을 확인한 다음 몇 가지 검사를 수행해야합니다. 이렇게하면 내 코드가 매우 복잡해질 것입니다. 나는 async 라이브러리에 대해 들었다.async.js를 사용하여 Node.js의 콜백 코드를 단순화하는 방법

누군가이 코드의 복잡성을 줄일 수있는 방법을 제안 해 주시겠습니까? 나는 비동기에 관해 많이 모른다. 그러나 그것은 정말로 나의 문제를 해결할 수 있냐?

승인과 같은 다른 검사도 수행해야합니다. 그리고 나는 콜백 지옥을 쓰고 싶지 않다.

모든 제안은 높이 평가됩니다.

감사합니다.

function updateUser(user_id, userData, cb){ 
     let response = {}; 

     //validate user data 
     validate(userData, function(isPassed, validationResult){ 
     if(isPassed){ 
      //validate user id 
      validateUserId(user_id, function(isValid){ 
      if(isValid){ 
       db.findById({ _id: user_id}, function(err, user){ 
       if(err){ 
        response.status = 'error'; 
        response.data = err; 
        cb(response); 
       } else { 
        user.save(userData, function(err, numOfRow){ 
        if(err){ 
         response.status = 'error'; 
         response.data = err; 
         cb(response); 
        } else { 
         response.status = 'success'; 
         response.data = numOfRow; 
         cb(response); 
        } 
        }) 
       } 
       }) 
      } else { 
       response.status = 'error'; 
       response.data = 'Provided id is not valid'; 
       cb(response); 
      } 
      }); 
     } else { 
      response.status = 'validationError'; 
      response.data = validationResult; 
      cb(response); 
     } 
     }); 

    } 

    function validate(data, cb){ 
     // checks some conditions here 
     cb(false, [errors]); 
    } 

    function validateUserId(id, cb){ 
     // checks some conditions here 
     cb(false); 
    } 

답변