从s3桶和数据库中删除.一个接一个地运行函数



我试图运行一个API调用,从S3桶和MySQL数据库中删除图像,但遇到一个问题,S3图像找不到,因为它首先从数据库中删除。

// Router code:
//req.body is an array of ids. e.g. [ 213, 214]
//remove from s3
req.body.forEach((mediaId) => {
mediaService.removeMediaItem(mediaId);
});

//remove from db
await recycleBinService.deleteRecycledMedia(req.body);

理想情况下,这段代码在路由器上运行删除从db但目前我认为从数据库删除第一作为图像变量removeMediaItem功能显示为null如果我日志。

// removeMediaItem
const removeMediaItem = async (mediaId) => {
const image = await _db.findOne("media", { id: mediaId });
console.log("image: ", image);
await s3Connection.deleteFile(image.file_name);
};
// deleteRecycledMedia
const wheresMedia = _apiDb.orWhere("id", mediaIds);
const wheresRecycle = _apiDb.orWhere("media", mediaIds);
// db Query that second input after first.
await _apiDb.doubleRawSql(
`DELETE from media ${wheresMedia}`,
`DELETE from recycle_bin ${wheresRecycle}`
);

您需要awaitremoveMediaItem。例如

req.body.forEach((mediaId) => {
await mediaService.removeMediaItem(mediaId);
}

相关内容

  • 没有找到相关文章

最新更新