npm install --save node-mysql


node-mysql 

node.js에서 mysql에 접근할수 있게해주는 모듈


 

var mysql = require('mysql');

var conn = mysql.createConnection({ host : 'localhost', //db접속 주소 user : 'root', //db접속id password : 'java0000', //db접속pw database : 'injava' //db명 }); conn.connect(); //db접속 var sql = 'SELECT * FROM board'; conn.query(sql,function(err,rows,fields) { if(err){ console.log(err); }else{ console.log('rows',rows); console.log('fields',fields); } }); conn.end();


mysql 모듈 로드후 conn 변수에 mysql.createConnection 함수로 db접속 정보를 담는다.

conn.connect(); 함수로 db에 접속하고

conn.query();함수에 쿼리문과 콜백함수를 인자로 전달한다.

쿼리문이 실행되고나서 실행되는 콜백함수의 인자인 rows에는 행의 정보가담겨있는 배열이다.

fields 에는 컬럼에관한 정보가 담겨있다.




 

var sql = 'SELECT * FROM board';

conn.query(sql,function(err,rows,fields) { if(err){ console.log(err); }else{ for(var i =0;i<rows.length;i++){ console.log(rows[i].board_title); } } });


rows 에는 쿼리문을 실행해 가져온 행의 배열이다 rows[인덱스번호].컬럼명 으로 특정값을 가져올수 있다.


 

var sql = 'INSERT INTO board(board_title,board_user,board_pw,board_content)VALUES(?,?,?,?)';

var params = ['test title','testuser','testpw','testcontent']; conn.query(sql,params,function(err,rows,fields) { if(err){ console.log(err); }else{ console.log(rows.insertId); } });


쿼리문에 ?,?,?,? 는

conn.query() 함수에 두번째 인자로 배열을 주게되면 배열의 값이 치환되어 쿼리문에 들어가 실행되게된다.


rows.insertId 는 db에 입력될때 생성되는 auto_increment 값을 알아낼수 있다.


'Node.js' 카테고리의 다른 글

session  (0) 2017.03.02
cookie-parser  (0) 2017.02.27
파일업로드 / multer  (0) 2017.02.27
EJS 템플릿 엔진 / include  (0) 2017.02.26
post 방식 데이터 전달 / 사용  (0) 2017.02.26

+ Recent posts