본문 바로가기
Web/Node.js

mysql module

by juein 2018. 3. 12.

[mysql module]

Node.js 에서 mysql 모듈을 사용해보자.


mysql module 설치

npm install mysql


mysql db 연동

mysql 데이터베이스는 클라이언트가 1시간 이상 응답이 없을 경우 자동으로 연결을 종료시킨다.

- https://github.com/mysqljs/mysql#server-disconnects 참고

//모듈 추출
var mysql = require('mysql');

// db연결
var connection = mysql.createConnection({
    host : 'localhost',        // <-- 연결 호스트 
    port : '3306',             // <-- 연결 포트
    database : 'databasename', // <-- 연결할 데이터베이스
    user : 'username',         // <-- 유저 명
    password : 'password!'     // <-- 유저 비밀번호
    // debug : false           // <-- 디버그 모드의 사용 여부
});

Connection 객체의 메서드

query() : 쿼리 문장을 실행

//데이터베이스 미선택시 db선택. connection에서 지정해주었다면 따로 선언하지 않아도 된다.
connection.query('USE databasename');

//쿼리 실행
connection.query('SELECT *,from_unixtime(date) as regdate FROM `test` ', function(error, result, fields){
    if(error){
        console.log('fail');
    }else{
        console.log(result);
    }
});

//특수문자 이스케이프

var idx = 111;
var sql = "select * from `test` where idx = '"+ connection.escape(idx) +"' ";


[sqlstring]

mysql에 관련해서 간단한 SQL 이스케이프 및 MySQL 용 형식맞춤 모듈

- 자세한 사용법은 https://www.npmjs.com/package/sqlstring 참고


sql string 설치

npm install sqlstring

//모듈 추출
var sqlstring = require('sqlstring');

//escape 메소드 사용, NO_BACKSLASH_ESCAPES SQL 모드가 비활성화 된 경우에만 작동한다. (MySQL 서버의 기본 상태임)
var userid = 'testId';
var testsql = "select * from `test` where id = '"+ sqlstring.escape(userid) +"' ";

//string format
var object = {id : 'test', 'title' : 'mysql title'};
var testsql = sqlstring.format('insert into `test` set ?', object);
// insert into `test` set `id` = 'test', `title` = 'mysql title' 로 적용됨.


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

request와 cheerio를 이용한 웹페이지 크롤링  (0) 2018.03.19
express 프레임워크  (0) 2018.03.12
express moduler  (0) 2018.03.07
express module - request, response 객체  (0) 2018.03.06
http module (server, request, response, cookie)  (0) 2018.03.02

댓글