NestJS

· NestJS
AnyORM을 사용하다가 개인프로젝트에 새롭게 prisma를 도입했다. 전체적으로 너무 만족스러웠지만, 고질적인 Timezone이슈가 있다는 것을 보고 어떻게 해결했는지 정리해본다. prisma Date 타입지정 - DateTmie @db.Date Mysql은 날짜관련 여러가지 타입을 제공하고 있지만, 내가 싶었던 날짜 형식은 Date("YYYY-MM-DD")였다. Prisma는 기본적으로 모든 DateTime을 Date 오브젝트로 리턴하기 때문에, 이 부분을 설정해줘야 했다.(프리즈마 참고문서) 1. shema.prisma 설정 스키마에서 due_day라는 필드 타입을 아래처럼 설정해 주었다. due_day DateTime @db.Date 2. TZ 이슈 발생 나의 서비스는 일정관리를 해주는 서비스였..
· NestJS
현재 백엔드에서 AccessToken을 쿠키에 심어서 프론트로 전달하고 있었다. 근데, 프론트에서 보낸 Request에서 Cookie를 꺼내서 validate을 하려고 보니 undefined가 뜨는 것이었다. 간단하게 해결해 보자. request.cookies undefined 내가 쿠키를 추출하고자 했던 방법은 아래와 같았다. 하지만, cookie는 undefined로 나왔다. 분명히 예전에 이렇게 추출했었는데.... 왜 그런지 살펴보니 parser를 설치해줘야 한다. super({ jwtFromRequest: ExtractJwt.fromExtractors([ request => { const cookie = request.cookies; console.log('cookie', cookie); retu..
· NestJS
NestJS 프로젝트를 하게 되면 만들게 되는 entity파일들을 통해, DB 테이블을 생성하는 방법은 많이 이용해 봤을 것이다. (참고로, synchronize 옵션을 통해 가능하다.) 이번에는 반대로 DB에 생성된 테이블들을 이용해 entity파일을 만드는 방법에 대해 정리해본다. 1. 라이브러리 설치 npm i -g typeorm-model-generator 2. cli 명령어로 entity 파일 생성 npx typeorm-model-generator -h IP주소 -d DATABASE이름 -p 포트 -u DB계정 -x 비밀번호 -e DB타입(e.g. mysql) -o 파일 출력장소(e.g. ./src/migrations/test) 이제 위 명령어로 매우 간단하게 entity 파일을 생성할 수 있다.
· NestJS
처음 시작은 nestjs 서버 시작하는 로그를 DB에 남기기 위해서였다. 어떻게 할까 궁리하며 이것저것 찾아보다 보니, main.ts에서 모듈을 불러와 처리하는 방법이 가장 간단하고 깔끔한 것 같아 정리한다. 단지 모듈을 어떻게 들고오는지 궁금하다면, 바로 구현방법 파트로 넘어가자 목표 목표는 아래 사진에 나오는 것처럼 NestJS Application이 정상 동작했다는 로그(Nest application successfully started)가 나온 뒤, database에 서버가 시작됐다는 로그를 남기는 것이다. 구현 방법 구현 방법은 매우 간단한다. //... await app.listen(9091); const logService = app.get('homemadeClass'); logService..
· NestJS
미들웨어를 이용하여, 요청이 들어오는 모든 api에 대해 log를 남길 수 있도록 해보자. Before begin 사실, 서버로 들어오는 모든 요청에 대해 로그를 만들어 DB에 저장하기 위해 이 작업은 시작되었다. 아래 그림은 NestJS에서 제공하는 Middleware flow와 NestJS의 LifeCycle이다. Middleware??? 위 그림에서 볼 수 있듯이 Middleware는 route handler 함수에 들어가기 전에 실행되는 함수이다. 그리고 이 Middleware Function에서는 request 객체, response 객체, next 함수에 접근이 가능하다. 기본 아이디어 처음에는 인터셉터에서 Log를 남겨보려고 하였으나, 이렇게 되면 가드에 막히는 요청들은 로그를 남길 수 없게..
· NestJS
이 생각의 시작은 migraition 설정을 위해 ormconfig.ts를 만들면서였다. ormconfig.ts에서 @nestjs/config가 제공하는 ConfigService를 사용하고 싶었지만, 그러기 위해서는 결국 nestjs app이 필요했다. 어떻게 이 문제를 해결 할 수 있을 까 고민하다 standalone application이라는 것을 알게 되어 정리하고자 한다. How To? 해당 내용은 공식문서를 참조하였다. //main.ts import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { AppService } from './app.service'; async function b..
moyanglee
'NestJS' 카테고리의 글 목록