Inflearn Community Q&A
모듈을 분리했는데 undefined오류가 납니다.
Written on
·
323
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
Instructor
this.usersRepository 의존성 주입하셨나요? 분리했기 때문에 this.usersRepository가 주입이 안 된 것 아닐까요? 매개변수로라도 주입을 직접 하셔야 할 것 같습니다.
zerocho
Instructor
class에 @Injectable을 쓰고 constructor에서 @InjectRepository()처럼 하는 방식입니다. class같은 것을 쓰지 않는다면 의존성 주입이 안 되고, this.usersRepository도 당연히 쓸 수 없습니다. 그럴 때는 매개변수로 직접 넘겨야겠죠.






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);
이런식으로 사용했습니다.