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 |