async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.setGlobalPrefix('api');
app.useGlobalPipes(new ValidationPipe());
await app.listen(3000);
}
모든 url앞에 api를 붙이기 위해서 전역으로 선언한 api, ValidationPipe를 전역에서 선언해서 사용하게 편하게 만들었다.
데코레이터 Global을 module에 붙이면 import 하지 않아도 providers를 사용 가능하게 해준다.
Middleware는 class에 implements NestMiddleware 함으로써 생성 가능해진다.
import { Injectable, NestMiddleware } from '@nestjs/common';
@Injectable()
export class AuthMiddleWare implements NestMiddleware {
use(req: any, res: any, next: () => void): any {
next();
}
}
그리고 class Module에 implements NestModule 함으로써 사용가능해지고 어느 Module에 붙이냐에따라서 스코프를 조절 할 수 있다.
export class CardpostsModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(AuthMiddleWare).forRoutes('*');
}
}