[TypeORM] TypeError: Converting circular structure to JSON --> starting at object with constructor 'ClientRequest'

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

createQueryBuilder( )를 사용하여 Get 메소드 API를 구성하였는데 npm run start:dev로 서버를 시작하니 TypeError: Converting circular structure to JSON --> starting at object with constructor 'ClientRequest' 와 같이 에러가 발생되었다. 원인은 마지막에 .getOne( ) 또는 .getMany( )를 추가하지 않아서 발생한 일이었다. 위와 같이 마지막에 .getOne()을 추가하였더니 에러가 발생하지 않았다.

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..

[TypeORM] @Many-to-One & @One-to-Many를 활용하여 @Many-to-Many Relations 구현

개발/TypeORM 2021. 9. 7. 08:20

TypeORM을 통해 Table간 Relation을 구성하다보면 N : N의 관계로 구성을 해야될 때가 있다. TypeORM의 공식 문서를 확인해보면 N : N을 구성하는 법은 다음과 같다. // category.entity.ts import {Entity, PrimaryGeneratedColumn, Column} from "typeorm"; @Entity() export class Category { @PrimaryGeneratedColumn() id: number; @Column() name: string; } // question.enetity.ts import {Entity, PrimaryGeneratedColumn, Column, ManyToMany, JoinTable} from "typeorm..

[TypeORM] @Many-to-Many 저장하고 불러오기

개발/TypeORM 2021. 9. 3. 08:20

서로 다른 두 개의 Entity(Story, Tag)에서 Story와 Tag를 @Many-to-Many로 Relation을 생성하고 @JoinTable을 통해 StoryId와 TagId를 JOIN하는 테이블을 생성하였다. 이러한 상황에서 JOIN 시킨 테이블에 StoryId와 TagId를 저장하는 순서는 다음과 같다.(태그 3개, 스토리 1개를 DB에 저장하는 상황으로 가정한다.) 1. Tag1, Tag2, Tag3를 각각 Tag 테이블에 저장한다. 2. Story를 저장할 때, Story.tags로 JoinTable한 부분에 Story.tags = [Tag1, Tag2, Tag3]와 같이 입력하여 Story 테이블로 저장한다. 위의 과정을 코드로 구현하면 다음과 같다. const tag1 = new T..