레퍼지토리 문제..해결하신 분 도와주세요 ㅠㅠ..
1452
작성한 질문수 8
강의에서 나오는 버전이 달라서 생기는 문제로 일단 파악은 되었지만 인터넷등 댓글에 있는 방법으로 시도해봤지만, 저는 해결되지 않아서 질문글 남깁니다 ㅠㅠ
우선 제가 마지막으로 했던 방법은 BoardsModule 파일에서 forFeature([BoardRepository->Board로 변경하고
@Module({
imports: [TypeOrmModule.forFeature([Board])],
controllers: [BoardsController],
providers: [BoardsService, BoardRepository],
})
export class BoardsModule {}
BoardService 파일에서 @InjecRepository(BoardRepository)를 Board entity로 변경하면 된다는 글을 보고 따라했지만,
@Injectable()
export class BoardsService {
constructor(
@InjectRepository(Board)
private boardRepository: BoardRepository,
) {}
포스트맨으로 직접 실행하기전에는 서버가 잘 실행되도, 포스트맨으로 호출하면 아래와 같은 오류가 나옵니다..
[Nest] 14464 - 2023. 05. 23. 오전 12:51:47 ERROR [ExceptionsHandler] this.boardRepository.createBoard is not a function
TypeError: this.boardRepository.createBoard is not a function
at BoardsService.createBoard (C:\nestStudy\nestjs-board-app\src\boards\boards.service.ts:42:33)
at BoardsController.createBoard (C:\nestStudy\nestjs-board-app\src\boards\boards.controller.ts:27:31)
at C:\nestStudy\nestjs-board-app\node_modules\@nestjs\core\router\router-execution-context.js:38:29
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at C:\nestStudy\nestjs-board-app\node_modules\@nestjs\core\router\router-execution-context.js:46:28
at C:\nestStudy\nestjs-board-app\node_modules\@nestjs\core\router\router-proxy.js:9:17
BoardRepository가 제대로 주입되지 않은 것 같은데 이후 해결방법을 도와주세요 ㅠㅠ 삽질을 그만 멈추고 싶습니다..
답변 5
6
boards.module.ts 파일의 providers에 BoardRepository를 추가해서
providers: [BoardsService, BoardRepository],
이렇게 한번 만들어 보시겠어요?
혹시 이렇게 해도 안되면,
1. typeORM 버전을 낮춘 것은 아닌지, 낮춘 게 맞다면 package.json 파일에서, dependencies의 typeorm 부분을 "typeorm": "^0.3.17",
이렇게 바꾸시고 npm install typeorm @nestjs/typeorm --save 로 다시 설치한 뒤,
2. boards.entity.ts 파일에서
@EntityRepository(Board) 부분을 지우고, 아래와 같이 @Injectable() 데코레이터와 컨스트럭터를 추가해 주세요.
//@EntityRepository(Board)
@Injectable()
export class BoardRepository extends Repository<Board> {
constructor(dataSource: DataSource) {
super(Board, dataSource.createEntityManager());
}
board.service.ts 파일에서 클래스의 컨스트럭터 부분을 아래와 같이 수정해 보세요.
export class BoardsService { constructor(private boardRepository: BoardRepository) {}
1
그리고 마지막으로
4. getBoardById 함수가 쓰고 있는 findOne을 아래와 같이 바꿔야 합니다.
const found = await this.boardRepository.findOne({
where: { id: id }
});
0
@CustomRepository(Board)
export class BoardRepository extends Repository<Board> {
constructor(dataSource: DataSource) {
super(Board, dataSource.createEntityManager());
}
}레포지토리에 생성자를 명시해주세요
0
안녕하세요, 인프런 AI 인턴이에요.
해당 에러 메시지는 boardRepository가 createBoard라는 함수를 가지고 있지 않기 때문에 발생한 것 같습니다. 해당 함수가 정의되어 있는지 확인해보시는 것이 좋을 것 같아요.
만약 함수가 정상적으로 정의되어 있다면, 문제가 될 수 있는 부분은 해당 함수를 호출하는 코드 부분인데, 해당 부분도 확인해보시면 좋을 것 같습니다.
만약 문제가 여전히 해결되지 않는다면, 코드의 전체적인 구조나 에러 메시지의 내용을 더 자세히 설명해주시면 더 도움이 될 것 같아요.
로거 객체 질문
0
58
1
회원가입 기능 구현 버전 변경에 따른 코드수정(해당 사항은 업데이트 예정이 없나요?)
0
78
1
파일을 찾지 못하는 오류가 계속 뜹니다
0
102
1
services와 repository 파일에서 해야하는 작업
0
122
1
커스텀 파이프에서 value의 타입이 string 이 아닐때
0
169
1
nestjs 기본 구조 설명에서 궁금한게 있습니다.
0
178
0
typeorm ^10.0.2 버전 사용시 No metadata for "BoardRepository" was found. 오류 발생 해결방법.
3
275
1
Model과 Dto의 차이점을 좀 쉽게 알수 있을까요?
0
681
1
강의 자료 관련해서 글 남깁니다.
0
482
1
"ID로 특정 게시물 가져오기" 부분이 잘못되었습니다.
0
453
1
선생님 nestjs랑 Nextjs랑 같이 연동해서 작업하는거 어떻게 생각하시나요?
0
2511
1
쌤 근데 enum 말고 type 으로 타입선언해주면안될까요?
0
613
1
pgAdmin 4에서 데이터 베이스 만들어주기 부분
0
643
1
강의 자료 관련해서 질문있습니다.
0
463
2
port 5432 failed: recived invalid response to ssl negotiation
0
767
1
repository.ts 에서 method 를 가져 오고 싶은데, 해당 메소드가 없다고 뜨네요
0
400
1
컨트롤러에선 async/await 사용하지 않아도 되는 이유
1
692
1
마지막 강의 영상에서 배포 자료는 어디서 볼 수 있나요?
0
387
1
No repository for 질문
0
526
1
특정 게시물을 찾을 때 없는 경우 에러 메세지 생성 에러
0
476
1
XML파일도 링크 공유해주시면 감사하겠습니다.
0
348
1
회원가입 기능 구현 중 오류가 났습니다.
0
498
1
NotFoundException
0
711
1
도와주세요 ㅠㅠ!!
0
1082
2





