error)선생님 깃허브에 올렸습니다.코드 체크 부탁드립니다^^
796
投稿した質問数 32
https://github.com/elvoinc2018/pat-clone-01
3:30 부분에서
Error: blog validation failed: user.name.last: Path `user.name.last` is required., user.name.first: Path `user.name.first` is required., user.username: Path `user.username` is required., user._id: Path `user._id` is required.
回答 5
0
감사합니다 선생님!^^ 덕분에 오늘 잠을 편히 잘 수 있겠습니다 ㅎㅎ
0
blog에 usr 객체를 추가하는 부분인데요. postman으로 localhost:3000/blog

2
오류가 발생하는 부분에 console.log를 이렇게 찍어봤는데요. user가 blog에 삽입이 안되고 있더라고요. 그래서 blog.save()를 호출 하면 필수값인 user정보들이 존재하지 않아서 오류가 발생하고 있었습니다.
일단 해결책은 간단합니다. blog.user = user 혹은 let blog = new Blog({...req.body, user: user.toObject() }) 이렇게 해주시면 됩니다.
기존 방식으로 하시려면 model에서 내장하는 부분을 다음과 같이 new Schema로 감싸주셔야 해요:
mongoose가 많은 기능을 제공해줘서 편하지만 내부적으로 처리되하는게 많다보니 이런 예상하기 힘든 불편한점들도 있어요. 여기서 user는 단순히 user의 데이터만이 있는게 아니라 몽구스에 제공해주는 것들이 이것저것 감싸져 있어요. user는 user 데이터를 갖고 있는 mongoose의 Document Class의 인스턴스에요. 그래서 .save와 같은 함수를 바로 호출 할 수도 있고 저장할 때 설정된 데이터가 올바른지 확인도 해줍니다. 그 외 virtual도 생성해주고 강의에서 다루지 않은 기능들도 많이 있습니다. 이런 점들이 편하긴 하지만 지금과 같이 당황스러운 오류가 발생할 때도 있어요.
지금 오류가 발생하는 경우는 new Blog({ ...req.body, user })를 할 때 user 값이 넘어가야 하는데 여기서 감싸는 부분 때문에 Blog Class가 user가 아닌 다른 데이터로 인지해서 반영이 되지 않았어요. 그래서 업데이트 된 부분에서는 new Blog({...req.body, user})가 되지 않았었어요. BlogSchema에 내장된 user 부분을 new Schema로 감싸줌으로써 기존 방식으로도 됩니다. 사실상 바뀌는건 없는데 이번 업데이트로 좀 더 업격하게 타입 체킹을 한다고 보면 될 것 같아요
option usecreateindex is not supported 오류 나면은
0
147
1
Schemaless 특성을 재생시 검은화면이 나와요
0
241
1
user 내장 시 ref 필드 필요성
0
240
1
await 관련해서 질문드릴게 있습니다!!
0
293
2
섹션6의 3번째 강의 faker파일이 어디있나요?
0
309
1
$elemMatch 질문이 있습니다.
0
248
1
DB 업데이트에 실패했을 상황에서 대처는 어떻게 할 수 있나요.
2
767
2
블로그에 user 데이터를 추가하는 방법에 대해서
0
238
1
blog 데이터 생성시 user 관련 오류
0
352
1
age 예외 처리를 별도로 하신 이유가 궁금합니다.
2
302
2
delete 메소드가 많은 이유가 궁금합니다.
0
182
1
unique validation 처리
0
297
1
updateMany에서 user._id를 못찾는 상황
1
397
1
find() 가 리턴하는 instance member
1
432
3
몽고 db를 백업방법을 부탁합니다.
0
604
1
인덱스 생성시점
0
713
1
$pull 문법에 대한 질문
0
361
1
comment의 id가 생성되는 시점
1
303
1
리팩토링 강의에서 라우터 리팩토링 전개연산자(...)
1
316
1
session.abortTransaction()에 대한 실제 예시 문의
0
289
1
섹션9 Computed Fields 강의에서, 다음 강의 가기 전 빠진부분
-1
411
1
faker 패키지 취약성 이슈
1
488
1
라우터 리팩토링
0
345
1
섹션4 진행중, mongoose 질문
0
312
1


