我遇到了 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/