const { pagination } = req.query;
설명: pagination에서 URL 뒤에 ?__가 필요하기 때문에, 쿼리형식으로 처리한다
const perPage = 4; // limit
설명: 한 페이지당 보여줄 댓글 갯수
const offset = pagination perPage; // offset*
설명:
//const count = await Comment.count();
const totCount = respondComments.length;
설명: 댓글 조회시 나올 전체 댓글 수
console.log(totCount);
const pageNum = parseInt(pagination, 10); // parseInt(string, 진수)
설명: 페이지 수를 2진수가 아닌 10진수로 처리
//console.log(pageNum);
const totalPg = Math.ceil(totCount / perPage);
설명: 전체 댓글 중 각 페이지에 댓글이 몇개 있는지 생각해서 페이지 수를 출력함
//console.log(totalPg)
let startNum = 0;
let lastNum = 0;
설명: 배열 처리시 숫자의 변동이 있을 수 있기 때문에, 0으로 처리함
//유효성 검사
// case 1: 댓글을 1개 이상 찾을 수 있는 경우
if (pageNum >= 1) {
(startNum = (pageNum - 1) perPage), (lastNum = pageNum perPage);
}
// case 2: 댓글을 찾을 수 없는 경우
else {
message = "작성된 댓글이 없습니다.";
logger.info(GET /api/posts/${postId}/comments 404 res:${message}
);
return res.status(404).send({ message });
}
if (respondComments.length < offset) {
lastNum = respondComments.length;
}
// 배열
const cmtsList = [];
for (let i = startNum; i < lastNum; i++) {
cmtsList.push(respondComments[i]);
}
// res 부분 처리를 getPgNum에서 insert하기에는 어려움 그래서 cmtsControl에서 처리
if (cmtsList === null) {
message = "댓글 리스트를 불러오는데 실패 했습니다.";
logger.info(GET /api/posts/${postId}/comments 400 res:${message}
);
return res.status(400).send({ message });
}
// 성공 응답 코드
message = "댓글 조회에 성공했습니다.";
logger.info(GET /api/posts/${postId}/comments 200 res:${message}
);
return res.status(200).send({ cmtsList, message, totalPg });
} catch (error) {
console.log(error);
message = "알 수 없는 문제가 발생했습니다.";
logger.error(GET /api/posts/${postId}/comments 500 res:${error}
);
return res.status(500).send({ message });
}
vscode에서 db에서 comments 조회시, 2번 조회 16번까지만 가능하고, 현 데이터 17번까지 조회가 되지 않았다
해결: literal로 count로 조건 추가
실질적인 문제 및 해결
Comment.count() ⇒ 이 함수는 db에 있었던 모든 데이터 갯수를 불러온다
그래서 모든 조회 수의 결과인 10이 나오게 된다.
하지만, postId=1 혹은 postId=2를 불러오려면,
다시말해, 1번 포스트 조회 9개, 2번 포스트 조회 1개를 불러오려면,
respondComments 가 배열이라 respondComments.length를 적어야 한다
11/19 ufo 코드에서 nodemailer 분석, 구글링해서 여러 자료 참고
but eventually, this function did not add onto the function. In order to add onto the system, it was quite complicate.