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

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

dydrms444님의 프로필 이미지

작성한 질문수

탄탄한 백엔드 NestJS, 기초부터 심화까지

고양이끼리 소통 API (댓글, 좋아요) - 서비스 완성

스키마가 등록 되어 있지 않다고 error 가 납니다. 아래 남긴 질문가 동일합니다.~

작성

·

352

1

안녕하세요 강의 항상 유익하게 잘듣고 있습니다. 감사합니다.

 

댓글과 cats와의 id를 join을 하는 과정에서 

 

[Nest] 10180  - 2021. 10. 21. 오후 5:35:46   ERROR [ExceptionsHandler] Schema hasn't been registered for model "comments".

Use mongoose.model(name, schema)

라는 에러가 발생합니다. 

 

현재 cats module에는 정상 아래와 같이 imports 하였습니다.(예제를 cat을 dog로 변형하여 작성하였습니다.)

 

    MongooseModule.forFeature([
      { name: Comments.name, schema: CommentsSchema }, //* dog안에서 comments 사용을위해 comments schema 추가
      { name: Dog.name, schema: DogSchema },
  ]),

 

repository 파일에서도 아래와 같이 작성을 완료 하였으나 error 가 발생합니다.

  async findAll() {
    console.log('findAll function');
    const CommentsModel = mongoose.model('comments', CommentsSchema);
    console.log(CommentsModel);

    const result = await this.dogModel
      .find()
      .populate('commentslist', CommentsModel);
    console.log(result);

    return result;
}

 

추정하기로는 

    const CommentsModel = mongoose.model('comments', CommentsSchema);
 

위 부분에서 schema를 찾을수 없어서 그런것 같습니다.

 

혹시 제가 확인해보아야될부분이나 의심스러운 곳이 있을까요??

 

 

답변 2

3

윤상석님의 프로필 이미지
윤상석
지식공유자

해당 부분은 mongoose 버전 문제입니다. mongoose 버전 6으로 올라가면 네스트 8과 호환이 안되는 부분이 있습니다. 아직은 버전 5.13 쓰셔도 문제 없습니다. package.json에서 아래 부분 수정해주시고 npm i 해주세요!

"mongoose" : "^5.13.9"

"@nestjs/mongoose" : "^8.0.1"

 

 

 

 

0

윤상석님의 프로필 이미지
윤상석
지식공유자

안녕하세요! 전에 답글 남긴걸 확인을 못했네요 ㅠㅠ

보내주신 코드로는 디버깅하기 어려울 것 같은데 전체 코드를 깃허브 링크로 보내주시면 도와 드리겠습니다.

우선 강좌 코드인 cats.schema.ts 부분을 확인해주시고 다르게 설계하신 부분 체크해주세요!