2017-01-31 12 views
0

私はノードが比較的新しく、非同期や約束の方法やコードを良くする方法について学びたいと思っています。 は、ここで私は非同期と約束について読ん私のコードasynを使ってnodejsコードをリファクタリングしてコールバックhellを避ける方法

router.post('/delete', function (req, res) { 
    var bus_id = req.body.selected[0]; 
     Bus.remove({_id: bus_id}, function (err) { 
      if (err) { 
       res.json({status: "error", message: "please enter a valid bus_id"}); 
      } else { 
       User.remove({refid:bus_id},function(err){ 
        if (err) { 
         res.json({status: "error", message: "bus user wasn't deleted"}); 
         return; 
        } else { 
         res.json({status: "success",message: "bus and bus user were deleted"}); 
        } 
       }); 
      } 
     }); 
}); 

の一例ですが、私のコードに適用する最良の方法は何ですか?

答えて

3

私は個人的に約束します。それはこのように見えるかもしれません。

router.post('/delete', function (req, res) { 
    var bus_id = req.body.selected[0]; 

    Bus.remove({_id: bus_id}).exec().then(function(bussRemoved) { 
    return User.remove({refid: bus_id}).exec(); 
    }).then(function(userRemoved) { 
    res.json({status: "success",message: "bus and bus user were deleted"}); 
    }).catch(function (err) { 
    res.json({status: "error", message: "please enter a valid bus_id"}); 
    }); 
}); 
+0

ありがとう – motchezz

関連する問題