多个验证管道

时间:2021-06-10 11:17:29

标签: nestjs

在 main.ts 中,我设置了一个如下所示的全局管道:

app.useGlobalPipes(
    new ValidationPipe({
      whitelist: true,
      transform: true,
      transformOptions: { enableImplicitConversion: true },
    })
  );

在控制器级别,我以这种方式设置了一个管道:

@UsePipes(new ValidationPipe({ transform: true }))

我的问题是:在控制器级别使用哪个管道?全局管道中的白名单属性是否会叠加并应用于控制器(使控制器级管道无用),或者控制器管道是覆盖全局设置的管道,因此唯一的 ValidationPipe 操作将是 transform:true ?

1 个答案:

答案 0 :(得分:0)

答案是两个管道都会被使用。 According to the docs 将首先应用全局管道,然后应用控制器级管道。由于尝试重新调用 plainToClass,这可能会导致错误,但如果不这样做,则最终只会为请求花费额外的时间