import { NestFactory } from '@nestjs/core'; import { ValidationPipe } from '@nestjs/common'; import helmet from 'helmet'; import compression from 'compression'; import { AppModule } from './app.module'; import { runMigrationsOnStartup } from './migration-runner'; async function bootstrap() { await runMigrationsOnStartup(); const app = await NestFactory.create(AppModule); // 全局 DTO 校验:对带 class-validator 装饰器的 DTO 生效。 // 注意:不开 whitelist/forbidNonWhitelisted,避免把无装饰器的裸 body(如 { ids: number[] })剥空。 app.useGlobalPipes(new ValidationPipe({ transform: true })); app.setGlobalPrefix('api'); app.enableCors(); app.use(helmet()); // eslint-disable-next-line @typescript-eslint/no-unsafe-call -- compression 经 export= 声明,eslint 类型解析受限 app.use(compression()); await app.listen(process.env.PORT ?? 3000); } void bootstrap();