首页 > 解决方案 > Nestjs multer在一些代码后上传文件

问题描述

我正在开发一个基于nestjs的api。我使用 multer 包上传文件。nestjs 文档上的代码示例如下:

@Post('upload')
@UseInterceptors(FilesInterceptor('files'))
uploadFile(@UploadedFiles() files: Array<Express.Multer.File>) {
  console.log(files);
}

但我想在发送邮件后保存上传的文件。如果邮件发送成功,那么我将保存文件。如果发送邮件过程失败,我会忽略文件上传。我怎么知道?

标签: nestjsmulter

解决方案


您可以通过两种方式执行此操作,一种是@Post('mail')根据您在客户端收到的响应创建另一条路由,假设它返回 OK 您可以发送另一个请求以上传文件,或者您可以将两个请求都发送到如果发送邮件不成功(为此您需要处理可能导致 API 中文件不完整的错误,基本上您的 API 应该知道),然后取消上传文件(假设此请求需要更长时间才能完成)预期文件的完整大小,以便您可以比较是否没有取消)。
另一种方法是使用一条路线完成这两项任务,在您的示例中添加用于处理发送邮件的代码,并根据它成功执行或不继续上传文件的条件。


推荐阅读