1. 좋아요 기능 구현하기
좋아요 상태 판단하기
-코드분석
router.get('/search/:boardIdx/:user_id',async(req,res)=>{
console.log(req.params);
console.log(req.params.boardIdx);
console.log(req.body.title);
const getBoard = "SELECT * FROM board where boardIdx = ?";
const getBoardResult = await db.queryParam_Parse(getBoard,req.params.boardIdx);
const getLikelist = "SELECT * FROM likelist where boardIdx = ? AND user_id = ?";
const getLikelistResult = await db.queryParam_Parse(getLikelist,[req.params.boardIdx,req.params.user_id]);
var boardIdx =req.params.boardIdx;
var user_id =req.params.user_id;
var title = req.params.title;
var resResult ={
status : 0,
success : 0,
message :"",
data : {boardIdx, user_id, title},
password : ""
}
if(!getBoardResult[0]){
resResult.status = 0;
resResult.success = 0;
resResult.message = "해당 게시글 번호 존재하지 않음";
resResult.data = "";
res.status(200).send(resResult);
}
else{
if(!getLikelistResult[0]){
resResult.status = 0;
resResult.success = 0;
resResult.message = "좋아요 안 누름";
resResult.data = "";
res.status(200).send(resResult);
}
else
{
resResult.status = 1;
resResult.success = 0;
resResult.message = "좋아요 누름";
resResult.data = "";
res.status(200).send(resResult);
}
}});
1. 첫번째 쿼리 : 게시판테이블에서, 원하는 게시글 번호를 가져온다
2. 두번째 쿼리 : 좋아요테이블에서, 게시글 번호와 사용자 id값을 가져온다
3. 첫번째 if/else 문 : 입력한 게시판 번호 유무
4. 두번째 if/else 문 : 게시판과 사용자 id값 유무
좋아요테이블에 게시판 번호와 사용자 id값에 따른 데이터(row)가 있으면,
좋아요를 누른 상태임으로 판단한다.
좋아요 누르기
-코드분석
router.post('/inputlike',async(req,res)=>{
console.log(req.body.title);
//1. 상세 게시글 boardidx, comment, STATUS
const getBoard = "UPDATE board SET like_sum a where boardIdx, userid VALUES (?,?,?)";
UPDATE board
SET like_sum = like_sum + 1
WHERE boardIdx =
const getResult = await db.queryParam_Parse(getBoard,[req.body.like_sum]);
//들어온 게시글 번호와 사용자 id값을 가지고 updateㅎㅏ기
const getBoard = "UPDATE INTO likelist where boardIdx, userid = ? VALUES";
const getResult = await db.queryParam_Parse(getBoard,[req.body.boardIdx, req.body.user_id]);
console.log(getResult);
if (!getResult) {
res.status(200).send("DB 오류");
} else { //쿼리문이 성공했을 때
res.status(200).send("getResult");
}
});
1. 사용자의 state를 확인하기 (좋아요를 눌렀는지, 안눌렀는지)
2. state에 따라 좋아요 개수 더하거나 빼기
3. 그 뒤에 state update까지
---
상황이 잘 이해가 안간다.
사용자가 좋아요를 누르려고 할 때,
우리는 사용자의 좋아요 상태를 확인해야 하고, 확인후 상태와 좋아요 개수를 업데이트해야한다
2. 최근글, 좋아요 수 글 뿌리기
-코드분석
router.get('/test/:flag', async (req, res) => {
console.log(req.body);
var flag = req.params.flag;
let getBoard;
let getResult;
if(flag == 1){
getBoard = "SELECT * FROM board ORDER BY date";
getResult = await db.queryParam_None(getBoard);
}
else if (flag==2){
getBoard = "SELECT * FROM board ORDER BY like_sum DESC";
getResult = await db.queryParam_None(getBoard);
}
if (!getResult) {
res.status(200).send("DB 오류");
} else { //쿼리문이 성공했을 때
res.status(200).send(defaultRes.successTrue(statusCode.OK, "필독사항 조회 성공", getResult));
}
});
1. flag변수를 이용해서 최근글/ 좋아요 수 글 출력을 나눈다
2. 오름차순/ 내림차순을 이용하기 위해 ORDER BY 이용.
'Backend > JavaScript,NodeJS, Express' 카테고리의 다른 글
JWT(json web token) 다뤄보기 (0) | 2021.05.02 |
---|---|
Web 기초 정리하기 (0) | 2021.04.28 |
Router 실습하기 (Postman, MYSQL) (0) | 2021.04.10 |
[생활코딩] Database, MYSQL 정리 (0) | 2021.03.28 |
Express 와 MySQL 연동하기 (0) | 2021.03.20 |