인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

holykhd's profile image
holykhd

asked

Slack Clone Coding [Backend with NestJS + TypeORM]

모듈을 분리했는데 undefined오류가 납니다.

Written on

·

315

0

모듈을 분리해서
export const UserUpdate = async function (selectionDto,info) {
....
}
이런식으로 분리를 했는데 아래와 같은 오류가 납니다.
TypeError: Cannot read property 'createQueryBuilder' of undefined
createQueryBuilder 에 Ctrl+마우스 클릭을 하면 해당 메소드로 이동이 되어야 하는데 이동이 안되고
Cannot find declaration to go to 이런 오류가 뜹니다.
혹시 모듈을 따로 만들어서 사용할 때 별도로 임포트를 해야하는 부분이 있을까요?
아니면 어느 부분을 놓치고 있는건지 감이 잡히질 않습니다.
좀도 명확한 오류가 나면 확인을 해 보겠는데..ㅠㅠ

nodejsexpressTypeORMNestJS

Answer 1

0

zerocho님의 프로필 이미지
zerocho
Instructor

createQueryBuilder 앞에 것이 뭔가요? 그걸 어떻게 DI 하셨나요?

holykhd님의 프로필 이미지
holykhd
Questioner

export const UserUpdate = async function (selectDto, info) {

  await this.usersRepository

    .createQueryBuilder('users')

    .insert()

    .into(Users)

    .values([

      {

        id: selectDto.id,

        contents: Users[info].message,

        exp: Users[info].value,

        userid: selectDto.userid,

      },

    ])

    .execute();

앞 부분을 위와같이 분리해서 common폴더를 만들어서 그 안에 user.update.ts라는 파일을 만들어서 넣었습니다.

사용할때는 다른 폴더에서 

await UserUpate(selectDto, info);

이런식으로 사용했습니다.

zerocho님의 프로필 이미지
zerocho
Instructor

this.usersRepository 의존성 주입하셨나요? 분리했기 때문에 this.usersRepository가 주입이 안 된 것 아닐까요? 매개변수로라도 주입을 직접 하셔야 할 것 같습니다.

holykhd님의 프로필 이미지
holykhd
Questioner

혹시 주입을 할려면 어떤식으로 해야하는지 알 수 있을까요?

어떤식으로 주입을 시켜줘야하는지 감이 잡히질 않네요.ㅠㅠ

zerocho님의 프로필 이미지
zerocho
Instructor

class에 @Injectable을 쓰고 constructor에서 @InjectRepository()처럼 하는 방식입니다. class같은 것을 쓰지 않는다면 의존성 주입이 안 되고, this.usersRepository도 당연히 쓸 수 없습니다. 그럴 때는 매개변수로 직접 넘겨야겠죠.

holykhd's profile image
holykhd

asked

Ask a question