분류 전체보기 (108) 썸네일형 리스트형 Comments view와 마찬가지로 /api/id/comment 로 접근하면 comment를 증가시키도록 하자. view와 다른 점은, comment 내용을 입력받으면 실시간으로 화면에 표시해야 한다는 것. comment가 일반적인 res.render와 다른 점은, 새로운 페이지를 불러오지 않는다는 것. 우선 bookDetail.pug에서 #을 이용해 add__Comment, book__comment-list 등에 Id를 부여한다. 그리고 assets/js/addComments에서 getElementById 함수를 이용해 이들을 관리한다. 위에서 이름표를 달아놓은 #jsCommentNumber, #jsAddComment, #jsCommentList를 아래에서 관리한다. addCommentForm은 submit을 기다리.. Views npm install node-fetch bookDetail이 실행될 때마다 book.views의 값이 1씩 오르도록 만든다. 우선 현재 url(req.url)을 뽑아보면 /id만 나오기 때문에 이를 bookId 변수에 저장한다. bookDetail의 조회수를 올려주는 registerView라는 함수에 넘겨준다. registerView는 fetch 함수를 이용해 특정 url로 접속한다. 우리는 api/id/views에 접속한다. 이때 접속하는 것을 화면에 표현하지 않는다. api/id/views에 접속하는 것을 apiRouter가 잡아낸다. api로 시작하는 url에 접근하면 apiRouter가 알아챈다. api/id/views에 접속하면 postRegisterView 함수를 호출한다. postRegis.. 수정 이것저것 수정 Protecting 지금은 꼭 사용자가 아니더라도 주소를 통해 editBook에 접근할 수 있기 때문에, 보안성을 높여보자. getEditBook과 deleteBook에서 책의 등록자와 현재 사용자가 같아야만 진행할 수 있게 if문을 추가 Creator 책을 업로드 할 때나 코멘트를 쓸 때 creator를 함께 표시 User 모델에는 사용자가 업로드한 책과 코멘트의 정보를 저장 새로운 책을 업로드 할때는 newBook.creator 정보로 req.user.id를 넣어준다. 그리고 그 책의 아이디를 req.user.book에 추가한다. 마지막으로 그 책의 정보 페이지로 이동 책의 정보 페이지를 요청 받았을 때, 우선 책의 id로부터 해당 책을 데이터베이스에서 찾는다. Book.js를 보면 creator의 ref는 user이기 때문에, user의 정보를 가져오기 위해 populate 함수를 사용한다. user의 정보가 book에 들어가 있는 상태로 bookDetail.pug를 불러온다. bookDetail.pug에서는 책의 생성자 id가 지금 사용자 id와.. UserProfile and changePassword userProfile과 changePassword 부분을 다뤘다. 특별히 어려운 건 없었고, 아바타에 대한 부분을 자세히 보면 좋겠다. My profile and User Detail 내 프로필을 볼 때와 다른 사람 프로필을 볼 때 페이지 호출 과정을 구분하자. routes.js에 const ME = "/me";와 me: ME,를 추가해준다. 프로필을 누르면 사진과 이름이 나오도록 userDetail.pug을 수정한다. 로그인한 상태에서는 Profile 버튼을 누르면 routes.me(/users/me)로 이동한다. userRouter에 userRouter.get(routes.me, getMe);를 추가해서 me 주소로 접근시도가 있을 때 getMe함수를 호출한다. getMe 함수는 userDetail.pug를 불러오고, request object의 user 정보를 전달한다. 일반적인 아이디로 호출할 경우(/users/id)는 아래와 같이 userDetail 함수를 호출한다. requ.. Kakao Login 카카오톡 계정을 이용한 로그인 과정 사용자가 Continue with KakaoTalk을 선택하면 우린 사용자를 카카오로 보낸다. 사용자가 카카오에서 로그인을 마치면, 카카오는 callbackURL로 callback과 함께 사용자를 돌려보낸다. 우리는 카카오에게 잘 받았어! 라고 보내준다. 카카오에게 받은 정보를 이용해 기존 유저와 같은 정보가 있는지 탐색한다. 있다면, 그 유저의 정보에 카카오에서 받은 정보를 합치고, 없다면 새로운 유저를 만든다. kakao(=/auth/kakao)는 Continue with KakaoTalk 버튼을 선택했을 때 이동하는 주소 kakaoCallback(=/oauth)는 사용자가 카카오로 넘어가서 로그인을 했을 때 다시 돌아오는 주소 Contunue with KakaoT.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 14 다음