Eclipse에서 Node.js (Nodeclipse)를 사용하는 방법을
다음과 같이 4가지로 정리하였다.
3. 게시판 예제 보강
앞서 작성한 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 등에서 글로별 변수로 선언해서 사용하는 것이 좋다.
'Node.js > 기타' 카테고리의 다른 글
우리동네, 아이랑 놀곳 Ver.서울 (0) | 2019.05.29 |
---|---|
nineBatis (9batis) (2) | 2017.08.16 |
1. Node.js 프로젝트 생성 및 개발 준비 (0) | 2017.08.05 |
2. MariaDB 기반 CRUD 게시판 만들기 (23) | 2017.08.05 |
4. GitHub에서 Node.js 소스 가져오기 (0) | 2017.08.05 |