Nodejs에서 Query를 이용 할 경우 Java에서 JDBC를 이용한 것이 JavaScript 라고 생각 하면 된다.


JDBC



// STEP1: Query 작성
PreparedStatement preparedStatement = connection.prepareStatement("select * from tb_test where test_no = ? and test_title = ? and test_content = ?");
   
// STEP2: 조건 처리
preparedStatement.setInt(1, 2);

preparedStatement.setString(2, "title");

preparedStatement.setString(3, "content");



Nodejs



client.query('select * from tb_test where test_no = $1 and test_title = $2 and test_content = $3',

[2, 'title', 'content'],

function(error, result) {

// result...

})



위와 같은 모습은 기본 형태라고 볼 수 있다.


Java는 set 하는 순간에 type을 다 정해주기 때문에 고민 할 필요가 없지만 javascript는 동적으로 타입이 변하기 때문에 문제가 발생 한다.

IN 절을 썼을 때 ',' 과 숫자가 결합이 되는 형태가 되면 문자열로 인식 하게 되어 Error가 발생 할 수 있다.


해결 방법



var nos = '1, 2, 3, 4, 5';


client.query('select * from tb_test where test_no in (' + nos + ') and test_title = $1 and test_content = $2',

['title', 'content'],

function(error, result) {

// result...

})



위와 같이 문자열로 직접 결합 해주어야 해결 할 수 있다.


'Nodejs' 카테고리의 다른 글

node-gyp rebuild 시 command not found 해결 방법  (0) 2013.04.26
file system library mkdirp  (0) 2013.03.29
Debian Linux에서 Eclipse, Nodejs 연동하기  (0) 2013.02.16
Nodejs is that ?  (0) 2013.02.10
Nodejs 설치 하기  (0) 2013.02.10

+ Recent posts