Eclipse에서 Node.js (Nodeclipse)를 사용하는 방법을

다음과 같이 4가지로 정리하였다.

1. Node.js 프로젝트 생성 및 개발 준비

2. MariaDB 기반 CRUD 게시판 만들기

3. 게시판 예제 보강

4. GitHub에서 Node.js 소스 가져오기


앞서 작성한 Node.js + MariaDB 게시판 예제 코드에서

다음과 같이 사용된 컨넥션 풀링 코드는

모든 컨트롤 파일(js)에 있어야 하는 코드이다.

var mysql = require('mysql');
var pool = mysql.createPool({
    connectionLimit: 5,
    host     : 'localhost',
    user     : 'root',
    password : '비밀번호',
    database : 'board'   
});

이렇게 사용하면

접속 정보가 바뀔 때 마다 모든 파일을 찾아서 수정해야 하고,

컨넥션 풀링을 제대로 사용할 수 없다.


여기에서는 컨넥션 풀링을 공통 파일에 넣고

호출해서 사용하는방법을 간단하게 정리한다.


그리고, 기존 예제(board1)를 수정하지 않고

간단한 파일 복제로 board2를 만들어서 구현한다.


먼저, routes 폴더에 있는 board1.js를

복사(Ctrl + C)해서 붙여넣기 (Ctrl + P) 한다.

새로운 이름(board2.js)을 입력하고 저장한다.

생성한 board2.js 파일을 열면

board1 경로가 사용된 것을 볼 수 있다.

board1을 모두 board2로 바꾸어 준다.


views 폴더에 있는 board1 폴더를 선택해서 복사(Ctrl + C)하고

views 폴더를 선택한 뒤에 붙여넣기 (Ctrl + P) 한다.

폴더가 맞지 않으면 복사가 되지 않으니 폴더를 잘 선택해야 한다.

새 폴더명으로 board2를 입력한다.

새로 생성한 board2 폴더 하위에 있는 3개의 ejs 파일을 열어서

board1을 board2로 모두 바꾸어 준다.

app.js 파일을 열어서

복사해서 생성한 board2.js 파일을 등록한다.


Node.js를 다시 시작한 뒤에

웹 브라우저에서 http://localhost:3000/board2/list 로 접속한다.


정리하면

컨트롤 파일(js)과 HTML(ejs) 파일을 복사해서 생성하고

컨트롤 파일(js)을 app.js에 등록하면

간단하게 새로운 게시판(board2)을 생성할 수 있다.


이제 새로 생성한 board2 의 컨넥션 풀링 코드를 공통 코드로 구현한다.


먼저, routes 폴더 하위에 mysqlConn.js 파일을 생성하고

커넥션 풀링과 관련된 코드를 넣어준다.

var mysql = require('mysql');
var pool = mysql.createPool({
    connectionLimit: 5,
    host     : 'localhost',
    user     : 'root',
    password : 'gujc1004',
    database : 'board'   
});

module.exports = pool;

module.exports 는 생성한 커넥션 풀링을

파일 외부에서 사용하도록 지정하는 코드이다.


board2.js 파일에서

커넥션 풀링 관련 코드를 지우고,

다음과 같이 require 함수를 이용해서

공통 파일(mysqlConn.js)을 가지고 오도록 지정한다.

var express = require('express');
var router = express.Router();

//   MySQL 로드
var pool = require('./mysqlConn');

router.get('/', function(req, res, next) {
    res.redirect('/board2/list');
});

router.get('/list', function(req,res,next){
    pool.getConnection(function (err, connection) {
        var sql = "SELECT BRDNO, BRDTITLE, BRDWRITER, DATE_FORMAT(BRDDATE,'%Y-%m-%d') BRDDATE" +
                   " FROM TBL_BOARD";
        connection.query(sql, function (err, rows) {
            if (err) console.error("err : " + err);

            res.render('board2/list', {rows: rows});
            connection.release();
        });
    });
});

~~ 생략 ~~

공통 부분을 별도 파일로 빼고, 그 파일을 호출하도록 하면 된다.

다만, 모든 컨트롤 파일을 위와 같이 작성하면

커넥션 풀링이 제대로 작동하지 않을 수 있기 때문에,

실제로 사용 할 때는 app.js 등에서 글로별 변수로 선언해서 사용하는 것이 좋다.















+ Recent posts