Estoy tratando de ejecutar una llamada a la API que elimina una imagen de un depósito S3 y una base de datos MySQL, pero me encuentro con un problema en el que no se puede encontrar la imagen s3, ya que primero se elimina de la base de datos.
// Router code: //req.body is an array of ids. eg [ 213, 214] //remove from s3 req.body.forEach((mediaId) => { mediaService.removeMediaItem(mediaId); }); //remove from db await recycleBinService.deleteRecycledMedia(req.body);Idealmente, este código en el enrutador ejecuta eliminar de s3> eliminar de db, pero actualmente creo que se está eliminando de db primero, ya que la variable de imagen en la función removeMediaItem se muestra como nula si cierro la sesión.
// 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}` );Debe await removeMediaItem . es decir
req.body.forEach((mediaId) => { await mediaService.removeMediaItem(mediaId); }