티스토리 뷰
저번에 이어서 쓴 글을 보는 기능과 글을 보고 나서 조회수가 오르는 기능을 구현해 보도록 하겠습니다.
어떻게 해야할지 갈피가 안잡혔었는데 찾아보던 와중에 주소창에 /content/:id 이런식으로 :(콜론)을 붙이면
req.params를 이용해 :id 값을 오브젝트 형태로 가져올 수 있었습니다.
req.params의 로직을 보면 uri에 찍혀있는 :id값을 오브젝트로 가져와 params라는 오브젝트를 생성하는 것입니다.
그럼 받아오는 곳이 있어야하는데 저는 간단하게
게시판이 있는 home.ejs에서 제목의 부분을 a href를 이용해서 board_no로 정해주었습니다.
그래서 그걸 이용해 한 번 만들어보겠습니다.
보시면 idx라는 변수에 params 오브젝트의 id를 가져옵니다.
그리고 여기서 많이 헤맸는데
보게 될때 조회수를 같이 올리고 싶어서 db.query문을 두개 적었지만 앞의 하나밖에 실행되지 않았습니다.
그래서 계속 구글링하면서 찾아낸것이 beginTransaction메서드입니다.
beginTranscation이란 메서드는 간단하게 데이터베이스 트랜잭션을 시작한다는 의미로 사용하는데요
try catch문으로도 많이 사용하고 게시판같은 경우에는 promise같이 비동기로 사용할 때 많이 사용한다고 합니다.
자세한 건 좀 더 공부하고 적어보겠습니다.
마지막에 쿼리문을 끝내고 render로 보내줍니다. ejs에서 data를 사용하기 위해
데이터가 들어있는 rows도 같이 보내줍니다.
그래서 클릭해서 들어가게 되면 조회수가 +1업데이트되고 글의 화면이 나오게 됩니다.
결과
'백엔드 > node.js공부' 카테고리의 다른 글
[nodemailer] responseCode 534 Connection timeout at SMTPConnection._formatError 해결 방법 (0) | 2021.06.20 |
---|---|
[nodejs]간단한 게시판 만들기(2)-글쓰기 기능 (0) | 2021.01.20 |
간단한 로그인&회원가입 기능 구현(5) (0) | 2021.01.16 |
간단한 로그인&회원가입 기능 구현(4) (0) | 2021.01.16 |
[nodejs] 간단한 게시판 만들기(1) (0) | 2021.01.13 |
- Replace
- sort
- 백준
- Express
- JavaScript
- 534 error
- 토마토3차원
- 정규표현식
- 숫자야구게임
- nodemailer error
- 로그인
- 코딩테스트
- GROUP BY
- 바이러스 dfs
- slice
- 프로그래머스
- smtp error
- 회원가입
- 코드테스트
- nodejs
- left join
- AWS
- Split
- JOIN
- Level 1
- 백준 7562 node
- 백준 7569 node
- SQL
- tolowercase
- 카카오2018[1차]
- Total
- Today
- Yesterday