본문 바로가기
320x100

Projects38

추천하기 기능 구현 추천하기 기능을 구현하되, 같은 ip에서는 한 번만 추천할 수 있도록 구현하고 싶었다. 추천하기 버튼을 누르는 순간 새로고침하지 않고 해당 내용을 반영해야 하기 때문에 AJAX를 사용하였다. 일단 추천한 유저의 IP정보를 가지고 있을 THUMBUPS 테이블을 정의했다. POST_ID에는 해당 글의 ID가 들어가고, USER_IP테이블에는 추천한 유저의 IP가 담긴다. var thumbup = function(id,ip,callback){ // 추천수 카운트 변수 var count; // 해당 글의 추천 수를 새로운 DB에서 카운트 해서 가져오기 db.query('SELECT COUNT(*) AS COUNT FROM THUMBUPS WHERE POST_ID=?',[id],(err,result)=>{ if .. 2021. 3. 3.
글 검색 기능과 페이징 개선 원하는 글을 제목, 글쓴이, 내용으로 검색할 수 있도록 검색기능을 추가하였다. 글쓰기 검색 제목 작성자 내용 일단 list.ejs의 wrap-upper 부분에 검색을 위한 form을 추가하였다. 이 form은 get방식으로 전달되며, 어떤 종류(제목,작성자,내용)의 검색인지, 키워드는 무엇인지, 그리고 해당 페이지가 어떤 게시판을 보여주고 있었는지를 전달한다. var express = require('express'); var router = express.Router(); var db = require('../db-query'); router.get('/',function(req,res,next){ let {type,mode,keyword,page} = req.query; if (page===undef.. 2021. 3. 2.
글 수정 기능과 글 리스트 페이징 가장 먼저 해야할 것은 update.ejs의 작성이다. update.ejs 수정하기 수정하기 취소 update.ejs 는 기본적으로 write.ejs에서 약간 변형하였다. 작성자와 게시판 종류를 수정할 수 없도록 하고, code라는, 암호화된 비밀번호를 가져온다. 이 이유는 수정 화면에서 제출을 선택했을 때 어떤 글을 수정할 것인지를 id로 판단한다면 수정 화면에서 post의 id만 바꿔서 엉뚱한 글을 수정해버릴 수 있기 때문이다. 이를 막기 위한 조치이다. modify.js var express = require('express'); var router = express.Router(); var db = require('../db-query'); router.post('/',function(req,re.. 2021. 2. 27.
글 삭제 기능 제작 먼저 할일은 수정,삭제 버튼과 비밀번호 입력input의 추가이다. view.ejs (생략) 추천하기버튼 삭제 수정 (생략) CSS #modify-btn,#delete-btn{ margin: 2px; float:right; } #delete-password{ float:right; margin: 2px; font-size: 21px; } 해당 글이 비로그인 유저가 쓴 글인 경우만 수정,삭제 버튼을 노출한다. 만약 로그인 유저가 쓴 글이라면 해당 유저로 로그인하고 자신이 쓴 글을 보아야만 삭제 버튼이 보이도록 추후에 수정할 것이다. modify-or-update div에는 수정,삭제 버튼과 비밀번호를 입력하기 위한 input을 집어넣었다. post가 보내는 정보는 글 id와 Password이다. 굳이 onc.. 2021. 2. 26.