0
我總是在一個路由或端點中有多個操作。舉一個例子,當用戶刪除一個項目時,我想在s3中刪除相關文件,除了從數據庫中刪除相關的收集。nodejs函數中的異步混亂
那麼下面的代碼好嗎?如果我在DeleteItem
函數中放置第一個函數(從s3中刪除文件),這有什麼關係嗎?
router.post('/item/delete', function(req, res) {
if(req.body.dlt_item){
var tempArray = [];
tempArray.push({"Key":req.body.dlt_item});
s3Bucket.deleteObjects({
Bucket: 'myS3',
Delete: {
Objects: req.body.dlt_item
}
}, function(err, data) {
if (err)
return console.log(err);
});
}
Item.DeleteItem(req.body.item_id, function(err,result){
if(err){console.log(err)}
res.send({result:1});
})
});
同時會導致問題,這就是我想知道的。你能詳細說明嗎? –
如果其中一個失敗而其他成功則會出現問題。假設s3文件被成功刪除,並且mongo刪除失敗。那麼你會有很多對現有資源的引用。 @ NicholeA.Miler –