> Backend/NestJS
-
230105목_공부일지> Backend/NestJS 2023. 1. 5. 17:36
1. 파이프와 유효성 검사: 요청이 제대로 전달되었는가 (p 113~) => 정의: 요청이 라우터 핸들러로 전달되기 전에 요청 객체를 변환할 수 있는 기회를 제공 => 미들웨어와 유사하나, 미들웨어는 app의 모든 컨텍스트에서 사용하도록 할 수 없음. => 목적: 변환(입력 데이터를 원하는 형시으로 변환) && 유효성 검사 (입력 데이터가 사용자가 정한 기준에 유효하지 않은 경우 예외) => 사용방법: @Param decorator의 두번째 인수로 파이프를 넘겨 현재 실행 콘텍스트 (ExecutionContext에 바인딩) findOne(@Param('id', new ParseIntPipe({errorHttpStatusCode: HttpStatus.NOT_ACCEPTABLE})) id: ..
-
230102월_공부일지> Backend/NestJS 2023. 1. 2. 09:21
1. NestJS에서 제공하는 Config 패키지 => 이전까지는 dotenv패키지를 직접 사용했는데, 이젠, nestJS에서 제공되는 패키지를 사용할 예정 => cmd: npm i --save @nestjs/config => //dotenvimport {ConfigModule} from "@nestjs/config";import emailConfig from "./config/emailConfig";import { validationSchema } from './config/validationSchema';@Module({ // Nest에서 제공되는 Config 패키지 // forRoot 매서드는 Dynamic Module을 리턴하는 정적 메서드 imports: [Users..
-
20221229목_공부일지> Backend/NestJS 2022. 12. 30. 08:06
1. 모듈 : 여러 컴포넌트를 조합해 좀 더 큰 작업을 수행할 수 있게 하는 단위. -> NestJS에서는 하나의 루트 모듈이 존재하고, 이 루트 모듈(AppModule)를 다른 모듈로 쪼개서 구성 -> 이유: 각기 맡은 바 책임을 나누고 응집도를 높임 => MSA -> @Module Decorator 사용 -> params 설명: imports : 해당 모듈에서 사용하기 위한 provider를 가지고 있는 다른 모듈 가져옴 , -> params 설명: exports : 해당 모듈을 어디에서나 가져다 쓸수 있게 선언 2. 전역 모듈 (Static Module): 공통 기능이나 DB 연결과 같은 전역으로 쓸수 있어야 할 경우 전역 모듈로 선언 -> @Global decorat..
-
221228수_공부일지> Backend/NestJS 2022. 12. 29. 02:06
1) 금일 진행 내용 1.이메일 인증// Description:: 이메일 인증// CMD:: curl -X POST http://localhost:3000/users/email-verify -H "Content-Type: application/json" -d '{"name": "name_example", "email":"email@example.com","password":"1234"}'@Post('/email-verify')async verifyEmail(@Query() dto: VerifyEmailDto): Promise{ const { signupVerifyToken } = dto; console.log('dto check:: ', JSON.stringify(dto)) return aw..
-
20221227화_공부 일지> Backend/NestJS 2022. 12. 28. 02:53
1. 유저 서비스 인터페이스 1) 기존에 생성되어 있던 create-user-dto에 생성과 관련된 dto 정의export class CreateUserDto { readonly name: string; readonly email: string; readonly password: string;}2)curl -X POST http://localhost:3000/users -H "Content-Type: application/json" -d '{"name": "name_example", "email":"email@example.com","password":"1234"}'유저를 생성했습니다. {"name":"name_example","email":"email@example.com","p..
-
20221222Thu_공부 일지> Backend/NestJS 2022. 12. 23. 02:21
1. Controller: 들어오는 요청을 받고, 처리된 결과를 응답으로 돌려주는 인터페이스 역할을 한다. 2. Header: => @Header decorator를 사용하여 커스텀 헤더 추가할 수 있다. //커스텀 Header: @Header데커레이터를 사용 (혹은, res.header()로 직접 설정 가능)@Header('key', "value")@Get('header/:id')findOne_Header(@Param('id') id: string) { if(+id 3. Redirection: => 종종 서버가 요청을 처리한 후, 요청을 보낸 클라이언트를 다른 페이지로 이동하고 싶을 경우, redirection 사용. => @Redirection decorator의 첫번째 인수는 ..
-
20221221Wed_공부 일지> Backend/NestJS 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 @Get('/hello')// 경로중에 / 는 생략할 수 있다.getHello(): string { return this.appService.getHello();} //와일드카드: 아래와 같이 와일드 카드를 사용해서 라우팅 패스를 작성할 수 있다.@Get('/ho*')getHello2(): string { re..
-
009_TypeORM을 NestJS에 연결 - 1> Backend/NestJS 2022. 5. 27. 14:39
이번에는 TypeORM을 NestJS에 적용해보겠습니다. 우선, 새로운 프로젝트가 되나 Report와 User로 각각 저번처럼 하나씩 만들어줍니다. (나중에 여기에 추가할 예정) 코드를 작성하기전에, 우선 개념부터 잡아봅시다. TypeORM는 ORM 기술로, Entity Instance와 DB를 Mapping하여 DB를 편리하게 사용 할 수 있는 기능입니다. 기존 DB 같은 경우 [Select * From TableName Where name =1 ] 이런식이였으면, TypeORM을 사용하면, 객체.findOne({값}) 이런 식으로 작성 할 수 있습니다. TypeORM은 아래와 같이 다양한 DB에 적용가능합니다. RDBMS : MySQL / MariaDB / Postgres / SQLite / Micr..