2016년 1월 4일 월요일

node.js 에서 MySql 연결하기

node.js 를 쓴다면 DB 는 거의 mySQL 일거다.
그만큼 node.js 와 mySQL 을 붙이는것은 쉬움.

그냥 패키지 관리자에서 mysql 모듈을 설치만 하면 모든 준비가 끝.
(물론 그전에 mySQL 은 설치가 되어 있어야 하겠지만.)


이렇게 모듈을 설치하면 그 다음에는 그냥 소스에서 데이터를 불러 쓰면 되는데...


샘플 데이터 만들기 귀찮으니, 그냥 시스템 테이블을 불러 와보자...
그냥 사용할 node.js 소스에서 require("mysql") 을 사용해 객체를 만들고 쓰면 된다.



var mysql = require("mysql");
var connection = mysql.createConnection({
    host : "localhost",
    port : 3306,
    user : "root",
    password : "$",
    database : "mysql"
});

var sqlQuery = "select * from user";
  
connection.connect();
connection.query(sqlQuery, callback);
connection.end();

function callback(err, rows){
    if(err){
        console.error('error connecting: ' + err.stack);
        return;
    }  
    
    for(var i=0 ; i < rows.length ; i++){
        console.log("Host : " + rows[i].Host + " | User : " + rows[i].User);
    }
}


주의 해서 볼 곳은 connection.query() 에서 callback() 부분인데, 이것은 DB 쿼리가 끝났을때 실행할 함수를 지정하는 것. 이렇게 소스를 생성하고, 실행을 해보면...


이렇게 mySQL 에 있는 내용이 출력이 된다. 참고로, callback 함수를 반드시 저렇게 별도로 작성할 필요는 없다.


이렇게 query 구문에 같이 넣어서 만들어도 완전히 똑같이 동작한다.