인프런 커뮤니티 질문&답변

dreaminliner님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

Transaction 적용

25-04 pointTransaction.service.ts 에러

해결된 질문

작성

·

586

0

      // 2. 유저의 돈 찾아오기
      // const user = await this.userRepository.findOne({
      //   where: { id: currentUser.id },
      // });
      const user = await queryRunner.manager.findOne(
        User,
        { id: currentUser.id },
        { lock: { mode: "pessimistic_write" } },
      );

위의 코드에서 { lock: { mode: "pessimistic_write" } }, 부분이 추가되면서 아래의 에러가 발생하고 있습니다.

 src/apis/pointTransaction/pointTransaction.service.ts:52:9 - error TS2554: Expected 2 arguments, but got 3.

52 { lock: { mode: "pessimistic_write" } },

테스트를 진행해보려면 어떻게 코드 수정이 되어야 할런지요?

답변 2

1

안녕하세요 dreaminliner님!

업로드 해주신 내용을 확인해 본 결과, 강의에서 사용하는 typeorm과 설치 버전이 상이해 발생한 문제로 보여집니다.

해당 문제를 해결하고 이후 강의에서 같은 문제가 발생하지 않도록 node_modules 폴더를 삭제한 뒤, 아래의 내용을 따라 버전을 fix해 새롭게 설치해 주시길 바랍니다.

  1. node_modules 폴더를 삭제합니다.

  2. package.json 파일의 dependencies: {} 안에 작성된 내용 중, "typeorm": "..."을 삭제해 주세요.

  3. 터미널에 yarn add typeorm@0.2 명령어를 입력해 0.2 버전의 typeorm을 설치해 주세요.

이후에는 관련된 에러가 발생하지 않을 것으로 예상됩니다!

감사합니다 :)

dreaminliner님의 프로필 이미지
dreaminliner
질문자

답변 감사합니다.

1

제 생각엔 아마 강의랑 typeorm 버전이 다른것 같습니다.

최신 버전으로 하시려면

const user = await queryRunner.manager.findOne(User, {
        where: { id: currentUser.id },
        lock: { mode: 'pessimistic_write' },
      });

이렇게 하셔야 될 듯 싶네요.

dreaminliner님의 프로필 이미지
dreaminliner
질문자

답변 감사합니다. ^^