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
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
[TypeORM] SQL문 LIKE를 createQueryBuilder를 통해 사용하기

개발/TypeORM 2021. 10. 2. 08:20

@Query를 활용하여 ?word={검색 단어}의 형식으로 검색 API를 구성하였다. // story.service.ts async findByWord(word: string) { return await this.repository.find({ where: [{ title: word }], select: ['id'], }); 위의 코드와 같이 구성하면, 해당 검색 단어와 일치하는 결과'만' 검색할 수 있다. 예를 들어 스토리의 제목이 "빨간 의자를 포함된 스토리" 이면 "빨간 의자" 혹은 "스토리"의 단어로는 해당 스토리가 검색되지 않는다. 검색 단어를 포함하고 있는 검색 결과를 얻기 위해서는 SQL문의 LIKE를 사용하면 된다. NestJS와 TypeORM을 사용하고 있기 때문에 TypeORM의 cre..

Bizm(비즈엠)을 활용한 알림톡 구현

개발/NestJS 2021. 10. 1. 08:20

알림톡을 추가할 때, 카카오 비즈니스를 통해 직접하는 것보다 Bizm이라는 알림톡 대행 서비스를 사용하는 것이 편리하다. 비즈엠 - 카카오톡 비즈메시지 공식딜러사 알림톡 친구톡 싸고 편하게 전송 www.bizmsg.kr Bizm 가이드를 따라면, 프로필과 userid 값을 받을 수 있다. // bizm.service.ts @Injectable() export class BizmService { async sendMessage(phone: string, templateId: string, message: string) { return axios.post( 'https://alimtalk-api.bizmsg.kr/v2/sender/send', [ { message_type: 'at', phn: '82' + ..