NodeJS

[NodeJS] - MySQL 연동하기(Connection Pool), delete문

Riucc 2018. 12. 3. 16:14

○ MySQL 연동하기(Connection Pool), delete문

 

※ Connection Pool 설정은 http://riucc.tistory.com/533 참조


// app.js


// 'pool.getConnection() -> connection.query() -> connection.release()' 코드 흐름을 따름


// 공지사항 출력한 목록 들어가서 해당 공지 게시물 삭제
// :noticeNo (Route Parameters 사용)
router.route('/process/notice/delete/:noticeNo').get(function(req, res) {
// 커넥션 풀에서 연결 객체를 가져옴
pool.getConnection(function(err, conn) {
        if (err) {
        if (conn) {
                conn.release();  // 반드시 해제해야 함
            }
            callback(err, null);
            return;
        }   
        console.log('데이터베이스 연결 스레드 아이디 : ' + conn.threadId);

        // 페이지 번호를 가져와서 대입(Route Parameters)
        var noticeNumber2 = req.param('noticeNo');
        console.log('noticeNum : ' + noticeNumber2);

        // SQL 문을 실행함
        conn.query('DELETE FROM notice WHERE noticeNo=?', [noticeNumber2], function(err, result) {
            conn.release();  // 반드시 해제해야 함(해제안할 시 DB연결 수가 계속 늘어남!!!)

                                  //  connectionLimit 값이 작을 경우 초과해서 서버 터짐  

            console.log(result);
            if(result) {
                console.log('정상적으로 공지사항 DB에서 삭제 완료');
                res.redirect('/process/notice');
            } else {
                console.log('공지사항 DB에서 삭제 실패');
            }
        });
    });
});


// notice_detail.ejs


<!-- 공지 출력 부분 -->
<div class="Notice" style="margin-top:70px;">
<div class="NoticeView">
<div class="container">
<div class="UIOPanelBox">
<h3 style="margin-bottom: 30px;">공지사항</h3>
<div class="noticeViewTitle"><%= notice_result[0].noticeTitle %>
<span><%= notice_result[0].noticeDate %></span></div>
<div class="noticeContents">
<div><span><%= notice_result[0].noticeDesc %></span></div>
</div>
<div class="btnWrap text-right" style="margin-top: 15px;">
<!-- 로긴 유저가 어드민일 시 삭제 버튼 토출되게 -->
<% if(userSessionId == "admin") { %>
<a class="btn btn-outline-primary"
href="/process/notice/delete/<%= notice_result[0].noticeNo %>"
style="margin-right: 20px;">삭제</a>
<% } %>
<a class="btn btn-outline-primary" href="/process/notice">목록</a>
</div>
</div>
</div>
</div>
</div>