nestjs - Nestjs multer在一些代码后上传文件
问题描述
我正在开发一个基于nestjs的api。我使用 multer 包上传文件。nestjs 文档上的代码示例如下:
@Post('upload')
@UseInterceptors(FilesInterceptor('files'))
uploadFile(@UploadedFiles() files: Array<Express.Multer.File>) {
console.log(files);
}
但我想在发送邮件后保存上传的文件。如果邮件发送成功,那么我将保存文件。如果发送邮件过程失败,我会忽略文件上传。我怎么知道?
解决方案
您可以通过两种方式执行此操作,一种是@Post('mail')
根据您在客户端收到的响应创建另一条路由,假设它返回 OK 您可以发送另一个请求以上传文件,或者您可以将两个请求都发送到如果发送邮件不成功(为此您需要处理可能导致 API 中文件不完整的错误,基本上您的 API 应该知道),然后取消上传文件(假设此请求需要更长时间才能完成)预期文件的完整大小,以便您可以比较是否没有取消)。
另一种方法是使用一条路线完成这两项任务,在您的示例中添加用于处理发送邮件的代码,并根据它成功执行或不继续上传文件的条件。
推荐阅读
- java - 使用单线程 ForkJoinPool 在 Future 中运行 Future.map
- node.js - 如何使用 jest 多次运行相同的测试
- javascript - 仅通过工具栏编辑文本
- generics - Rust 中的谓词是什么?
- arrays - Angular/Typescript 更改数字数组的值
- r - 如何仅打印数据框的索引
- python - Docker没有将输出保存到文件
- python - Python:plt.plot(x,y)ValueError:格式字符串中无法识别的字符S
- python - Python - 脚本从 JSON 中读取一个值并在 CSV 中写入 200 次
- javascript - 用打开的选项卡上的按钮关闭选项卡的方法是什么?