더북(TheBook)

GET /usersPOST /users 주소로 요청이 들어올 때의 라우터입니다. 각각 사용자를 조회하는 요청과 사용자를 등록하는 요청을 처리합니다. GET /에서도 사용자 데이터를 조회했지만 GET /users에서는 데이터를 JSON 형식으로 반환한다는 점에서 차이가 있습니다.

사용자를 등록할 때는 먼저 모델 .create 메서드로 저장합니다. 몽고디비와 메서드가 다르므로 몽구스용 메서드를 따로 외워야 합니다. 정의한 스키마에 부합하지 않는 데이터를 넣었을 때는 몽구스가 에러를 발생시킵니다. _id는 자동으로 생성됩니다.

GET /users/:id/comments 라우터는 댓글 다큐먼트를 조회하는 라우터입니다. find 메서드에는 옵션이 추가되어 있습니다. 먼저 댓글을 쓴 사용자의 아이디로 댓글을 조회한 뒤 populate 메서드로 관련 있는 컬렉션의 다큐먼트를 불러올 수 있습니다. Comment 스키마 commenter 필드의 refUser로 되어 있으므로, 자동으로 users 컬렉션에서 사용자 다큐먼트를 찾아 합칩니다. commenter 필드가 사용자 다큐먼트로 치환됩니다. 이제 commenter 필드는 ObjectId가 아니라 그 ObjectId를 가진 사용자 다큐먼트가 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.