1. mysql2 설치
npm install mysql2
2. DB환경 파일 만들기
(1) createConnection() : 요청시마다 커넥션을 맺고 끊고 하는 단일 연결방식으로 매번 연결, 해제에 부담이 있다.
// dbconfig.js
const mysql = require('mysql2');
var db = {
host : 'localhost',
user : 'root',
password : '0729',
database : 'test',
port : 3306
};
// export
module.exports = {
// 커넥션 생성
init: function () {
return mysql.createConnection(db);
},
// 접속
connect: function(conn) {
conn.connect(function(err) {
if(err) console.error('DB 연결 에러 : ' + err);
else console.log('DB 연결 성공');
});
}
};
(2) createPool() : DB 커넥션 풀에 몇개의 커넥션을 먼저 만들어 놓고 요청 시에 그 중 하나를 할당받고 다시 돌려받는다. 단일 연결 방식보다 효율적이지만 커넥션의 개수에 따라 메모리에 부하가 갈 수 있다.
const mysql = require('mysql2');
var db = {
host : 'localhost',
user : 'root',
password : '0729',
database : 'test',
port : 3306,
connectionLimit: 10 // 커넥션 최대 개수
};
// 풀 생성
const pool = mysql.createPool(db);
module.exports = {
// 연결
connect: function getConnection(callback) {
pool.getConnection(function (err, conn) {
if(!err) {
callback(conn);
}
});
}
};
3. 모듈 불러와서 사용하기
// app.js
const express = require('express') // express 모듈
const app = express()
const port = 3000 // 포트
const dbconfig = require('./dbconfig.js');
const conn = dbconfig.init();
// 단일 연결 방식일 경우
app.get('/test', (req, res) => {
dbconfig.connect(conn);
conn.query("SELECT * FROM test", (err, result, fields) => {
if (err) {
console.log(err);
}
console.log(result);
});
conn.end();
})
// 풀 방식일 경우
app.get('/test', (req, res) => {
dbconfig.connect((conn) => {
conn.query("SELECT * FROM test", (err, result, fields) => {
if (err) {
console.log(err);
}
console.log(result);
});
conn.release();
});
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
})
'dev > nodejs' 카테고리의 다른 글
nodejs - env파일 (0) | 2023.07.22 |
---|---|
node js - typescript 설정 (0) | 2023.07.20 |
node js - 요청, 응답 (0) | 2023.07.10 |
node js - route (0) | 2023.07.10 |
express 설치 (0) | 2023.03.22 |