반응형
Mysql 모듈 설치
아래 명령어를 통해 mysql 을 설치해줍니다.
yarn add mysql
Mysql 모듈 사용하기
설치를 하셨다면, 새로운 js 파일을 만들어 require 시켜줍니다.
// pool.js
const mysql = require('mysql')
이 후 각자에 맞는 연결을 해주도록 합니다.
// pool.js
const mysql = require('mysql')
const dbConfig = {
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'authtest'
}
여기서 createConnection 과 createPool 이 나오게 됩니다.
Mysql Pool
Connection 과 Pool 의 차이는 처리방식의 차이입니다.
간단하게 설명드리면, Connection은 동시에 여러 쿼리문을 처리하지 못하지만, Pool은 동시에 여러 쿼리문을 병렬적으로 처리할 수 있습니다.
아래 이미지를 클릭하시면 더욱 자세한 설명을 보실 수 있습니다.
Mysql Pool 사용하기
이 Pool 을 모듈처럼 만들어서 사용하기 위해 모듈처럼 만들어보도록 하겠습니다.
// pool.js
const mysql = require('mysql')
const dbConfig = {
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
database: 'authtest'
}
const pool = mysql.createPool(dbConfig);
exports.getConnectionPool = (callback) =>{
pool.getConnection((err, conn)=>{
if(!err) callback(conn)
});
}
이제 이 모듈을 사용하도록 할건데요,
//auth.js
const user = require('../../controller/user')
router.route('/user')
.post(user.userRegister) // 회원가입
이런 형식으로 만들어주도록 하겠습니다. 여기서 user.userRegister 는 user.js 에 있는 모듈을 가져옵니다.
//user.js
const pool = require('../lib/config/pool')
exports.userRegister = (req,res) => {
pool.getConnectionPool((conn)=>{
const sql = 'SELECT * FROM user'
conn.query(sql , (err, doc)=>{
if(err) console.log(err)
res.send(doc)
})
conn.release()
})
}
이런식으로 해주면 위에서 만들었던 모듈을 불러와 사용을 할 수 있게되고, query 가 끝나고 release 를 해주면서 pool 을 끝내줍니다.
반응형
'JavaScript > Nodejs' 카테고리의 다른 글
[NodeJS] express 오류 : Cannot set headers after they are sent to the client (0) | 2021.12.23 |
---|---|
[NodeJS] TypeScript 사용 시 Request CustomType (0) | 2021.12.23 |
[Nodejs] 로그인 / 회원가입 [JWT Token] (2) | 2021.09.03 |
[Nodejs] 로그인 / 회원가입 [ 로그인 ] (0) | 2021.08.14 |
[Nodejs] 로그인 / 회원가입 [ Mysql 세팅 및 연동 / express-mysql-session ] (0) | 2021.08.12 |