NestJS

· 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..
Jest를 이용하여 테스트를 하는 와중, 다음과 같은 에러메시지가 발생하였다. Jest did not exit one second after the test run has completed. This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue. 그래서 적혀져 있는대로 --detectOpenHandles 을 붙여서 아래처럼 실행 해봤더니 똑같이 에러가 발생하였다. npm run test some.spec.ts --detectOpenHandles stackov..
· TypeORM
NestJS 프로젝트에서 생성한 entity와 db에 실제로 생성되어 있는 table의 sync를 맞추고 싶었다. synchronize 옵션을 주면 된다고 하지만, 이건 데이터 소실의 위험이 있다고 하여, migration파일을 통해 목적을 이루고자 하였다. 아래 내용은 typeorm 공식문서를 참고하였다. 방법 1 - migration 파일 처음부터 모두 작성하기 아래 명령어를 통해, 비어 있는 migration 파일을 생성 할 수 있다. typeorm migration:create -n 생성할migration파일명 방법 2 - migration 파일 자동 생성 후, 차이 있는 부분 파악하여 수정하기 아래 명령어를 통해, 현재 entity 파일들과 db의 테이블을 비교하여 차이점을 수정하는 migrat..
· 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
이 생각의 시작은 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..
· NestJS
Client에 배포를 할 때, 클라이언트 측 DB에 Admin계정이 존재하는지 확인하고, 만약 없다면 해당 DB에 정해진 계정을 넣어줘야 하는 일이 생겼다. 어떻게 이러한 문제를 TypeORM의 migration으로 해결 할 수 있는지 정리해보자. 개발 환경 우선 현재 NodeJS기반에서 NestJS 프레임워크, DB는 Mysql, TypeORM을 사용하고 있으며, Docker를 이용하고 있다. DB는 docker로 띄우지 않고, 폐쇄망에 따로 마련된 DB를 이용하고 있다. (참고로, Front, Backend 두개의 컨테이너를 띄우고 있다.) Migration? 우선 migration이 무엇인지에 대해 간략히 정리하고 넘어가자. NestJS의 공식문서에 따르면, Migrations은 기존 데이터베이스에..
moyanglee
'NestJS' 태그의 글 목록