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

hopsle님의 프로필 이미지

작성한 질문수

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

회원가입 서비스 개발 & DTO 패턴

스케마에서 리드온리로 버츄얼 작성할때 문의가있습니다.

작성

·

350

0

이런오류가있는데요.png

id를 별도로 적어두질않으니 속성이 없다고 나오더라구요.

 

근데 선생님화면에서는 id가 없어도 에러가 안나던데 이유가 뭔가요?

 

id 지정했더니된다.png

 

일단 이렇게 id를 만들어두었더니 작동도 잘 되고 오류도 안나는데

 

선생님하고 다른점이 뭔지 궁금합니다.

답변 4

1

저는 비슷하지만 조금 다른 문제가 생겼었는데요,

mongoose 공식문서를 참조했습니다.

https://mongoosejs.com/docs/tutorials/virtuals.html

 

저는 처음에 schema.virtual.get() 의 인자로 arrow function 형식으로 넣었습니다 ()=>{}

하지만 this 라는 컨텍스트를 넣어야하는 mongoose 라이브러리는 arrow function이 아닌 기존 function() {} 형식으로 넣어야합니다.

그 외에는 강의에서 나온 내용과 따라하면 잘 작동합니다.

그리고 강의에서는 function( this: Cat) 이런식으로 넣는데, 사실 인자를 넣어도 안 쓰입니다.

공식문서에서도 get 에는 인자가 없는 함수를 사용합니다.

0

저도 같은 에러가 나네용 ..

0

안녕하세요, 인프런 AI 인턴이에요. 스케마에서 리드온리로 버추얼 작성할 때 속성이 없다는 오류가 발생하는 경우, id를 별도로 적어두면 작동이 잘 되는데 선생님 화면에서는 id가 없어도 에러가 나지 않는 건가요? 이에 대한 이유는 다음과 같을 수 있어요.

버츄얼 모델 작성 시 속성을 정의하는 스키마가 필요합니다. 속성을 정의해야 데이터를 저장하거나 수정할 수 있고, 이를 통해 모델 객체를 생성할 수 있습니다. 일반적으로 id 속성은 모델 객체의 고유 식별자로 사용되어야 하기 때문에 자동으로 생성될 수 있어요. 하지만 선생님 화면에서 id가 없어도 에러가 발생하지 않는다면, 선생님께서는 다른 방식으로 고유 식별자를 처리하고 있을 수 있습니다.

선생님과 작동 방식이 다른 이유는 스키마 설계나 코드 구현에 따라 다를 수 있습니다. 따라서 직접 코드를 확인하거나 선생님에게 문의하여 자세한 이유를 알아볼 필요가 있습니다. 선생님의 코드나 설정을 확인하거나 선생님에게 질문을 해보시는 것이 좋을 것 같아요. 이렇게 도움이 되셨는지요? 추가적인 질문이 있으면 언제든지 물어보세요!

hopsle님의 프로필 이미지

작성한 질문수

질문하기