// 설치
npm i -g @nestjs/cli
npm install --save @nestjs/mongoose mongoose
npm i --save @nestjs/config
npm i --save class-validator class-transformer
//
nest new project-name
// 첫단계
nest g mo cats // cats라는 모듈 생성
controllers : [CatsController]를 추가하고 아래코드 실행
nest g co cats // cats 컨트롤러 생성
nest g service cats // cats 서비스 생성
nest g middleware // middleware 생성
@Module({ controllers : [CatsController], providers: [CatsService]})
// 컨트롤러
@Controller('name')
// 예외필터
filter 적용
htt-exception.filter.ts
@UseFilters(HttpExceptionFilter)
main.ts 에 app.useGlobalFilters(new HttpExceptionFilter());
// 파이프
id값에 숫자 인자 값을 넣어도 string 으로 받아와지지만 partIntPipe를 추가해주면 number 타입이 된다.
@Get(':id')
getOneCat(@Param('id', ParseIntPipe) param: number) {
console.log(param);
console.log(typeof param);
return 'a cat';
}
//인터셉터
AOP(관점지향프로그래밍)에서 영향
미들웨어처럼 사용 logging 같이
@UseInterceptors(new LogginInterceptor()) // success.interceptor.ts
@UseInterceptors(SuccessInterceptor) //cats.controller.ts
// 생명주기
리퀘스트 - 미들웨어 - 가드 - 인터셉터(pre-controller) - 파이프 - 컨트롤러 - 서비스 - 인터셉터(post-request)
// DB (mongoose)
// jwt
// 로그인
// 회원가입
// CORS
// 폴더구조
// 디자인패턴
// 미디어파일
// 데이터베이스 관리
// 스웨거