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 –