2017-11-04 7 views
0

私のプロジェクトにはMEAN技術を使用しています。 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); 
    } 

答えて

関連する問題