티스토리 뷰

nodejs PostgreSQL prepared statement 적용.

nodejs에서 pg 모듈( Nodejs에 PostgreSQL 연동모듈중 가장 많이쓰이는 모듈) 사용시 PreparedStatement를 적용하는

방법을 찾다가 결국 모듈내 소스를 뒤져서 발견한 방법을 공개합니다.



  db.getConnection(function(error, client) {
        var query = 'SELECT * FROM  MEMBER WHERE  mbr_acc_id = $1 ';
        var param = [user.member_id];
        client.query({text:query, values:param, name:"info_01"}, function(error, result) {
            if (error) {
                if (error === 10004) {
                    callback(null, null);
                }
                else {
                    callback(error);
                }
            }
            else {
                callback(null, result.rows);
            }
        })
})


아래의 빨간 부분의 name값을 정해주는게 핵심 포인트이다.

client.query({text:query, values:param, name:"info_01"}


위 힌트는 github의 pg모듈 소스를 뒤지다가 찾게 되었다.



[그림 1] github pg module


바로 아래의 코드에 prepared를 동작하는 방법이 있다.

[그림 2] github pg module index.js


실제로 확인해본결과 Query가 제대로 파싱되어 날아간다.



query가 안날아가고 query별칭이 날아간다. (info_01이라고 위에서 별칭을 선언해주었음)

한층 Query 성능이 가벼워짐을 느낄수 있다.

.by rocksea



댓글