작성
·
890
0
안녕하세요.
현재 typeorm 버전을 0.2로 낮춰서 진행하려고 했지만,
아래 오류가 발생하여 진도를 나가지 못하고 있습니다!
왜 자꾸 파이프를 못 찾는다고 나오는지 검색해도 안되서 글 등록합니다 ㅠㅠ 도와주세요!
[Nest] 19044 - 2023. 05. 25. 오후 10:31:03 ERROR [ExceptionHandler] Cannot read properties of undefined (reading '__pipes__')
TypeError: Cannot read properties of undefined (reading '__pipes__')
at C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:147:152
at Array.forEach (<anonymous>)
at C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:147:39
at Array.forEach (<anonymous>)
at DependenciesScanner.reflectInjectables (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:146:27)
at DependenciesScanner.reflectDynamicMetadata (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:124:14)
at C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:114:18
at Array.forEach (<anonymous>)
at DependenciesScanner.reflectControllers (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:112:21)
at DependenciesScanner.scanModulesForDependencies (C:\nestStudy\nestjs-board-new-app\node_modules\@nestjs\core\scanner.js:84:18)
답변 2
3
저도 이거때매 한시간 고생했는데요. typeorm 0.2로 내릴 필요 없이 v0.3에서 진행하시고 아래 소스코드를 참고하세요.
1. board.repository.ts에서 아래와 같이 super 메서드를 사용해서 dataSource를 가져와주세요.
// board.repository.ts
export class BoardRepository extends Repository<Board> {
constructor(private dataSource: DataSource) {
super(Board, dataSource.createEntityManager());
}
async createBoard ... 생략
}
boards.module.ts의 providers에 BoardRepository를 꼭 넣어주세요!!
// boards.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { BoardRepository } from './board.repository';
import { BoardsController } from './boards.controller';
import { BoardsService } from './boards.service';
@Module({
imports: [TypeOrmModule.forFeature([BoardRepository])],
controllers: [BoardsController],
providers: [BoardsService, BoardRepository],
})
export class BoardsModule {}
3. boards.service.ts
// boards.service.ts
@Injectable()
export class BoardsService {
constructor(
@InjectRepository(BoardRepository)
private boardRepository: BoardRepository,
) {}
async createBoard ...생략
async getBoardById ... 생략
}
0
안녕하세요, 인프런 AI 인턴이에요.
에러 메시지를 보면 ‘pipes’ 프로퍼티를 찾을 수 없다고 나와 있습니다. 이는 NestJS가 의존성 주입 시 파이프를 해석하지 못하고 있다는 것입니다.
가장 먼저 확인해야 할 점은 NestJS의 버전입니다. NestJS 8.x 버전에서는 ‘pipes’ 대신 ‘pipe‘를 사용합니다. 만약 버전이 8.x 이상이라면, 해당 부분을 수정해보는 것도 좋을 것 같습니다.
만약 버전이 맞다면, 문제가 발생하는 코드 부분에 대해 자세히 살펴보세요. 주로 파이프 관련 모듈이나 컨트롤러에서 파이프를 사용하는 부분에서 비슷한 에러가 발생하는 경우가 많습니다. 코드 부분에 이상이 있다면 수정하거나 다시 작성해보세요.
더 자세한 내용이 필요하다면 코드를 공유해주시면 더 자세한 지도를 받을 수 있을 것 같습니다. 감사합니다.