IT Study

[NestJS] 프로젝트 Error 및 Trouble Shooting

짹짹체유 2024. 2. 5. 19:56

 

1

발생한 에러

ERROR [ExceptionHandler] Nest can't resolve dependencies of the CumulativeRecordRepository (?). Please make sure that the argument DataSource at index [0] is available in the TypeOrmModule context.
Potential solutions:
Is TypeOrmModule a valid NestJS module?If DataSource is a provider, is it part of the current TypeOrmModule?If DataSource is exported from a separate @Module, is that module imported within TypeOrmModule? @Module({ imports: [ /* the Module containing DataSource */ ] })

 

해결방법

1) Entity.ts 파일에 @Entity() 추가

2) @Injectable() 추가

3) app.module.ts 파일에 TypeOrmModule.forRoot(typeORMConfig) 추가

 

 

2

발생한 에러

WARNING: No configurations found in configuration directory:D:\~~\config
WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.

 

해결방법

src폴더 외부에 config 파일 생성

 

 

3

발생한 에러

EntityMetadataNotFoundError: No metadata for "CumulativeRecord" was found.

 

해결방법

module.ts 파일에서,

전: entities: [__dirname + "/../**/*.entity.{js, ts}"],

후: entities: [__dirname + "/../../**/*.entity.{js, ts}"]

경로에서 에러가 났었음

참고: https://puleugo.tistory.com/101

 

 

4

발생한 에러

dto 형식에서 map 함수, reduce 함수는 에러남

 

해결방법

dto 형식에는 반복기를 반환하는 Symbol.iterator 메서드가 있어야 함

이터레이터 어렵다고 생각해서 for문으로 처리

 

 

5

발생한 에러

RDS 연결 후

Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string at Object.continueSession

 

해결방법

config 파일에

ssl: {
        rejectUnauthorized: false,
     },

 

추가

 

 

6

발생한 에러

column "username" of relation "user" contains null values Please interpret this error

 

해결방법

synchronize: true로 되어있어서 실제 DB의 컬럼명과 엔티티가 다른 경우, nestjs는 차이를 자동으로 맞추려고 하면서 에러가 났던 것.

synchronize: false로 변경해서 해결

 

 

7

발생한 에러 & 해결방법

getRawMany vs getMany

https://ul0511.tistory.com/61

 

[TypeORM] QueryBuilder | SELECT 절에서 as 사용하기 (with. getMany vs getRawMany)

사용 언어 및 Stack: Nest.js, TypeORM, PostgreSQL 맞닥드린 문제: alias를 활용해서 변수명을 변경하고 싶다. 기본적인 SQL문은 SELECT 절에서 'as 별명'을 통해 변수명을 변경한다. 그러나 TypeORM에서도 동일하

ul0511.tistory.com

 

 

8

발생한 에러

EntityMetadataNotFoundError: No metadata for "Feedback" was found. at DataSource.getMetadata

synchronize: false로 설정해서 테이블을 pgadmin에서 추가했는데 위와 같은 에러가 계속 났음

 

해결방법

엔티티에서 export 위에 @Entitiy()를 넣어주지 않았었음

 

 

9

발생한 에러

feedback DELETE 부분에서 쿼리빌더로 delete하면 영향 받은 row가 하나 있다는데 DB에서는 데이터가 삭제되지 않는 문제 발생.

 

From GPT,

트랜잭션 처리: 트랜잭션 처리가 올바르게 이루어지고 있는지 확인하세요. 트랜잭션이 열려 있지 않거나, 트랜잭션 내에서 예외가 발생하여 롤백되는 경우 데이터 변경이 영구적으로 적용되지 않을 수 있습니다.

 

해결방법

return 전에 await queryRunner.commitTransaction(); 를 해야 하나의 트랜잭션이 종료되는데 해당 코드가 빠져있었음

 

 

반응형

'IT Study' 카테고리의 다른 글

[Backend] AWS RDS와 Mysql 연결하기 (+에러해결)  (1) 2023.12.17