> Backend/NestJS
20221221Wed_공부 일지
Janku
2022. 12. 22. 00:50
1. Decorator
-> 다섯가지 종류: Method / Accessor / Property / Class / Param (pg.35~42)
2. Controller
-> 정의: 들어오는 request를 받고, 처리된 response를 돌려주는 인터페이스 역할.
-> 진행 방법: nest new project-name --skip-git => nest g resource name
<기본적인 controller 생김새>
@Get('/hello')
// 경로중에 / 는 생략할 수 있다.
getHello(): string {
return this.appService.getHello();
}
<와일드 카드 사용한 controller 생김새>
//와일드카드: 아래와 같이 와일드 카드를 사용해서 라우팅 패스를 작성할 수 있다.
@Get('/ho*')
getHello2(): string {
return this.appService.getHello();
}
<request 사용 => express에서 import 해줄것>
// 요청 객체: NestJs는 req와 함께 전달되는 데이터를 핸들러(요청을 처리할 구성 요소, 컨트롤러가 이 역할을 함)이 다룰수 있는 객체로 변환
// 요청 객체는 HTTP 요청을 의미한다.
// 요청 객체(req)가 어떻게 구성요소로는 쿼리 스트링, 매개변수, 헤더, 바디 등 다양한 정보를 가지고 있지만 대부분 decorators (@Query(), @Param, @Body 등)을 사용해 처리한다.
@Get('/hello3')
getHello3(@Req() req: Request): string {
// console.log(req)
return this.appService.getHello();
}
<Request처리 방법>
@Get(':id')
findOne(@Param('id') id: string) {
if(+id < 1){
//문자로 받은 id앞에 +붙여주면, 숫자로 변환
throw new BadRequestException('id값은 0보다 큰 값이어야 합니다.')
}
return this.usersService.findOne(+id);
}
3. 해맨 부분
1. nest new project-name-in-lowercase --skip-git
=> nest new automatically include .git folder which screw things up if you scaffold inside of existing git repo.
=> to avoid, use --skip-git
2. when the file is readonly => sudo chmod -R 777 fileDirectory
=> 파일이름 파일이 모두에게 권한 생김