NestJs v7 -> v8로 업그레이드 후, 400 Bad Request 발생 시

개발/NestJS 2022. 3. 12. 08:20

NestJs에 socket.io와 websocket gateway를 사용하기 위해서 공식 문서에 나온 대로 진행하였다. $ npm install @nestjs/websockets @nestjs/platform-socket.io npm 패키지를 설치하는 부분부터 의존성 이슈가 발생하였다. 기존에 사용하던 nestjs와 관련된 모든 패키지의 메이저 버전이 7.x 였는데 최신 websocket 관련 패키지를 사용하려면, 최소한 nestjs 메이저 버전이 8.x는 되어야한다고.... 기존이라면 nestjs 버전에 맞춰서 이전 버전의 패키지를 설치하겠지만, nestjs 버전 8과 버전 7의 socket.io의 버전이 메이저 버전 2.x와 4.x로 차이가 많이 발생하여 하는 김에 nestjs 공식 문서에 있는 mi..

Article Thumbnail
DB와 NodeJS의 TimeZone이 서로 다를 때 해결방법

개발/NestJS 2022. 2. 25. 08:20

매일 $ npm run start:dev를 통해 NestJS 서버를 run시키지만, TimeZone 이슈가 발생하기 전까지 생각하지도 못했던 부분이었다. 아래의 코드처럼 createdAt 칼럼을 기준으로 유저 테이블에 하루동안 얼마나 많은 유저가 누적이 되었는지를 가져오는 쿼리를 구성할 때, new Date()를 통해 현재 시각을 가져오고, .setDate()를 통해 하루 이전의 시각을 가져와 그 사이에 있는 유저를 가져오도록 하려했다. async getUsersPerDay(){ const from = new Date(); const to = new Date(); from.setDate(from.getDate() - 1); return await this.repository .createQueryBuil..

Article Thumbnail
DataLoader를 사용하여 GraphQL 쿼리 최적화하기

개발/NestJS 2022. 1. 29. 08:20

query ($id: Int!) { activity(id: $id) { id title content type images files subject endDate createdAt groupActivities { group { id name } } } } `; 쿼리 로그 쿼리 로그를 출력하면 아래와 같은 쿼리가 출력된다. SELECT "Activity"."id" AS "Activity_id", "Activity"."created_at" AS "Activity_created_at", "Activity"."updated_at" AS "Activity_updated_at", "Activity"."title" AS "Activity_title", "Activity"."content" AS "Activity_co..

Article Thumbnail
GraphQL과 Rest API 동시 사용시 Cannot read property 'headers' of undefined 에러 해결

개발/NestJS 2022. 1. 22. 08:20

레거시는 GraphQL, 추가 개발은 Rest 방식으로 진행되는 NestJs 기반의 백엔드에서 @Public이 아닌 Rest API에서 TypeError: Cannot read property 'headers' of undefined 가 발생하였다. 원인 처음 생각한 원인은 front에서 Rest API를 호출할 때, header에 토큰 정보가 포함되지 않는 것이라고 생각했는데 체크해보니 잘 들어가 있었다. 백엔드에서 JWT를 검증하는 AuthModule에서 백엔드로 들어오는 request를 체크하는 jwt-auth guard에 문제가 있었다. getRequest()메소드가 기존 @nestjs/passport에 포함되어있는 AuthGuard의 getRequest()를 오버라이드해서 GraphQL의 req..

Article Thumbnail