有两种不同的方法可以全局应用验证管道。我看不出它们之间的区别。
方法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
中应用全局验证管道时,我们在整个应用程序中绑定验证管道。但它确实遗漏了从应用程序上下文外部注册的模块。另一方面,当我们在模块作用域中应用验证管道时,该管道只绑定该模块的路由。当你想要将特定的管道绑定到一个模块时,这变得非常有用。