Node.js에서 MySQL DB서버에 접속해서 정보를 가져오고 수정하는 작업을 해보자.
Node.js에 포함되어있는 기본 모듈중에 MySQL을 제어할 수 있는 모듈이 존재하지 않는다.
그럼 누군가가 만든 모듈이 있는가...?
npm install -S mysql2
-S
혹은 --save
명령을 추가하면 package.json의 "dependencies"에 추가할 수 있다.MySQL 에는 [TODOLIST]라는 데이터베이스 안에 [todos]라는 테이블이 존재한다.
todos 테이블의 속성과 타입은 다음과 같다.
- id : INTEGER (자동생성)
- todoCode : STRING
- date : INTEGER
- title : STRING
- contents : STRING
- done : STRING
- edit : STRING
- delete : STRING
- createAt : DATE (자동생성, 현재 시간이 자동으로 들어가도록 기본값 설정)
- updateAt : DATE (자동생성, 현재 시간이 자동으로 들어가도록 기본값 설정)
// mysqltest.js
// mysql2 모듈 ---------------------------------------------
var mysql = require('mysql2');
// createConnection 메소드 ---------------------------------
// - 인자로 Database 정보가 담긴 객체를 전달한다.
var connection = mysql.createConnection({
host : 'localhost', // db 서버의 port (Node.js와 mysql서버가 동일한 컴퓨터에 있다면 localhost)
user : 'root', // 사용자
password : 'root', // 비번
database : 'TODOLIST' // db name
});
// connect() : DB 접속 시작 ---------------------------------
connection.connect();
// query() : SQL 쿼리 ---------------------------------------
// + sql문 : sql문이 DB 서버에 전송되어 실행
// + callback 함수 : sql문 실행이 종료된 후 callback함수 실행
// - error :
// - results :
// - fields :
connection.query('SELECT * FROM todos', function (error, results, fields) {
if(error) {
console.log(error);
}
console.log(results);
}
);
// end() : DB 접속 중단 -------------------------------------
connection.end();