2017년 10월 9일 월요일

[nodejs] mysql 디비 커넥션 풀 생성하기.

자 일단 dataBaseConnectionPool.js 라는 파일을 생성한다.

var mysql = require("mysql");

var pool = mysql.createPool({
    connectionLimit : 10,
    host: 호스트,
    user: 사용자,
    password: 패스워드,
    database: 디비명
});

만약 npm 에서 mysql 커넥터 관련 라이브러리를 다운 받지 않았다면

https://github.com/mysqljs/mysql 를 참조 하자



var DB = (function () {
    function _query(query, params, callback) {
        pool.getConnection(function (err, connection) {
            if (err) {
                connection.release();
                callback(null, err);
                throw err;
            }
            connection.query(query, params, function (err, rows) {
                connection.release();
                if (!err) {
                    callback(rows);
                }else {
                    callback(null, err);
                }
            });
            connection.on('error', function (err) {
                connection.release();
                callback(null, err);
                throw err;
            });
        });
    }
    return {
        query: _query
    };
})();
module.exports = DB;

DB 라는 변수에 자가실행함수를 등록하였고
등록된 자가 실행함수는 생성된 커넥션 풀에서 커넥션 객체를 하나꺼내고 쿼리를 실행하고 콜함수의 쿼리 결과를 담아 리턴한다.


자 이제 호출 하는쪽을 보면...

var DB = require('../component/dataBaseConnectionPool');
일단 정의 된 DB 객체를 가져오고

var sql = 'SELECT 1 from DUAL';
DB.query(sql, [], function (rows, err) {
var returnObj;
                        //커넥션 객체 가져올떄 오류
if (err) {
returnObj = {
"QUERY_RESULT" : 98
};
}else{
var arr;
try{
arr = JSON.parse(JSON.stringify(rows[0]));
returnObj = {
"QUERY_RESULT" : 1
,"arr.컬럼명" : arr.컬럼명; //데이터 넣어주기
};
//데이터 없음
}catch(e){
returnObj = {
"QUERY_RESULT" : 99
};
}
}
callback(returnObj);
});
}

query 함수를 호출 하고 결과를 콜백함수를 실행해준다.
호출하는곳에서 returnObj에 QUERY_RESULT 값을 체크 하여 처리 하면 되겟다.


댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1