根据全局验证管道在Nest.js中设置的位置有什么不同?



有两种不同的方法可以全局应用验证管道。我看不出它们之间的区别。

方法1

// app.module.ts
import { APP_PIPE } from '@nestjs/core';
@Module({
providers: [    
{
provide: APP_PIPE, // <-- here
useValue: new ValidationPipe({}),
},
]
})
export class AppModule implements NestModule {
// ...
}

方法2

https://docs.nestjs.com/techniques/validation auto-validation

// main.ts
async function bootstrap() {
const app = await NestFactory.create(AppModule); 
app.useGlobalPipes(new ValidationPipe({})); // <-- here
await app.listen(3000);
}
bootstrap();

当我们在main.ts中应用全局验证管道时,我们在整个应用程序中绑定验证管道。但它确实遗漏了从应用程序上下文外部注册的模块。另一方面,当我们在模块作用域中应用验证管道时,该管道只绑定该模块的路由。当你想要将特定的管道绑定到一个模块时,这变得非常有用。

最新更新