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 |