inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 NestJS

게시물 상태 업데이트하기

update를 repository로 빼서 작성했는데 오류가 나옵니다

555

lgh3806

작성한 질문수 9

0

boards.service.ts 코드입니다.

import { Injectable, NotFoundException } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { BoardStatus } from './board-status.enum';
import { Board } from './board.entity';
import { BoardRepository } from './board.repository';
import { CreateBoardDto } from './dto/create-board.dto';

@Injectable()
export class BoardsService {
  constructor(
    @InjectRepository(Board)
    private boardRepository: BoardRepository,
  ) {}

  createBoard(createBoardDto: CreateBoardDto): Promise<Board> {
    return this.boardRepository.createBoard(createBoardDto);
  }

  async getBoardById(id: number): Promise<Board> {
    console.log(id, 'ididid');

    return this.boardRepository.getBoardById(id);
  }

  async deleteBoard(id: number): Promise<void> {
    const result = await this.boardRepository.delete(id);
    if (result.affected == 0) {
      throw new NotFoundException(`Can't find Board with id ${id}`);
    }
  }

  async updateBoardStatus(id: number, status: BoardStatus): Promise<Board> {
    const board = await this.getBoardById(id);
    board.status = status;
    await this.boardRepository.save(board);

    return board;
  }
}

board.repository.ts 코드입니다

import { Injectable, NotFoundException } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { BoardStatus } from './board-status.enum';
import { Board } from './board.entity';
import { BoardRepository } from './board.repository';
import { CreateBoardDto } from './dto/create-board.dto';

@Injectable()
export class BoardsService {
  constructor(
    @InjectRepository(Board)
    private boardRepository: BoardRepository,
  ) {}

  createBoard(createBoardDto: CreateBoardDto): Promise<Board> {
    return this.boardRepository.createBoard(createBoardDto);
  }

  async getBoardById(id: number): Promise<Board> {
    console.log(id, 'ididid');

    return this.boardRepository.getBoardById(id);
  }

  async deleteBoard(id: number): Promise<void> {
    const result = await this.boardRepository.delete(id);
    if (result.affected == 0) {
      throw new NotFoundException(`Can't find Board with id ${id}`);
    }
  }

  async updateBoardStatus(id: number, status: BoardStatus): Promise<Board> {
    const board = await this.getBoardById(id);
    board.status = status;
    await this.boardRepository.save(board);

    return board;
  }
}

[Nest] 12296 - 2023. 01. 26. 오후 4:25:43 ERROR [ExceptionsHandler] this.boardRepository.getBoardById is not a function

TypeError: this.boardRepository.getBoardById is not a function

at BoardsService.getBoardById (C:\Users\lgh38\Desktop\GH\nest-board-app\src\boards\boards.service.ts:22:33)

at BoardsService.updateBoardStatus (C:\Users\lgh38\Desktop\GH\nest-board-app\src\boards\boards.service.ts:33:30)

at BoardsController.updateBoardStatus (C:\Users\lgh38\Desktop\GH\nest-board-app\src\boards\boards.controller.ts:44:31)

오류 내용은 위와 같습니다. 자세히 보면 this.boardRepository.getBoardById is not a function이라고 나오는데 제가 생각 했을 땐 처음 service의 updateBoardStatus 함수에서 getBoardById 함수로 넘겨주고 또 getBoardById 함수가 repository 안에 있는 getBoardById 함수에게 값을 넘겨서 두 번 리턴 받아서 해결 될 줄 알았는데 에러가 나오더라구요..

오히려 분리를 안 시켰을 땐 오류가 안 나옵니다 무슨 이유일까요..?

jwt nestjs TypeORM typeorm NestJS postgresql

답변 0

로거 객체 질문

0

59

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

645

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