javascript - 您可以将 FileInterceptor 与 TransformPipe 一起使用吗

标签 javascript node.js typescript nestjs

我遇到了 TransformPipe 的问题 - 它可以工作很长时间,因为我不使用 FileInterceptor。由于我需要这两种功能,这让我很困惑。我创建了一个issue在 Github 上,但卡米尔在上面写道,这是正常的框架行为。我和我的 friend 都没有在官方文档中找到任何对这种“正常”行为的引用。你有什么想法吗?

代码是here :

Controller

@UsePipes(SamplePipe)
@UseInterceptors(FileInterceptor('file'))
@Post()
samplePost(@UploadedFile() file) {
  return file
}

管道

@Injectable()
export class SamplePipe implements PipeTransform {
  transform(value: any, metadata: ArgumentMetadata) {
    console.log("I'm working")
    return value;
  }
}

最佳答案

Pipes仅适用于以下类型:'body' | '查询' | '参数' | 'custom' 对应于 @Body()@Query()@Param()custom decorators就像@User()。在您的示例中,您没有任何这些,这就是不应用管道的原因。

因此,如果您将其中之一添加到示例中,则会应用管道(在本例中为 @Body())。

@UsePipes(SamplePipe)
@UseInterceptors(FileInterceptor('file'))
@Post()
samplePost(@UploadedFile() file, @Body() body) {
                                 ^^^^^^^^^^^^^
  return file
}

如果您使用@UsePipes(),管道将应用于所有适用的地方。您还可以使用@Body(SimplePipe) body仅将管道应用于主体。

关于javascript - 您可以将 FileInterceptor 与 TransformPipe 一起使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53337293/

相关文章:

node.js - 为什么 require ('underscore' ) 在 node.js REPL 上执行时返回 undefined?

TypeScript:使用 Property Decorator 时得到错误的对象

javascript - Angular 2\TypeScript 中 export 关键字的确切含义是什么?

javascript - 如何避免在 html 中阻止警告框

用于正则表达式的 Javascript 检查是否不包含以字符串模式开头

javascript - 如何向列表添加元素?

javascript - 增量运算符在 Sequelize 中不起作用

mysql - MySQL + Node/Express + Angular Stack 的最佳实践

typescript - 如何使用一组有效键中的任意键定义对象的类型?

javascript - 我可以使用 TypeScript 在 axios.get 方法中的泛型类型中指定任何类型