728x90
이전 글(https://minu0807.tistory.com/125)에서 mysql npm을 사용해봤고, async/await을 사용하기 위해선 mysql2를 설치해야 한다고 해서 설치해봤다.
콜백 방식은 보기도 싫고, 작성하는 나도 싫기 때문에... 기존꺼에 작성한 건 바로 수정해봤다.
우선은 mysql2 설치
npm install mysql2
이후 지난번에 작성했던 mysql.js을 수정
const mysql = require('mysql2/promise');
const {
MYSQL_HOST,
MYSQL_USER,
MYSQL_PW,
MYSQL_DB,
} = process.env;
module.exports = mysql.createPool({
host: MYSQL_HOST,
user: MYSQL_USER,
password: MYSQL_PW,
database: MYSQL_DB,
connectTimeout: 5000,
connectionLimit: 30 //default 10
})
mysql을 mysql2/promise로 바꿔주면 된다.
적용 소스
const mysql = require('../mysql');
router.post('/user_table', async (req, res) => {
let rt = {
ok: false,
msg: '',
result: null
}
let conn = null;
try {
const sql = `CREATE TABLE tb_user (
user_id varchar(255),
user_nm varchar(255),
user_pw varchar(255),
user_addr varchar(255),
user_mk_dt datetime,
user_upd_dt datetime,
is_use tinyint(1)
)`;
conn = await mysql.getConnection();
//myslq2/promise에서 결과를 배열로 반환하기 때문에 배열로 받아야한다.
const [ result ] = await conn.query(sql);
rt.ok = true;
rt.msg = 'ok';
rt.result = result;
conn.release();
} catch (err) {
console.error("makeTable/user_table Error!!");
console.error(err);
rt.msg = 'user_table Error';
rt.result = err.message;
conn.release();
}
res.send(rt);
})
이전 글에서 테이블을 생성하는 것과 동일한 기능인데 async/await으로 처리하니 확실히 보기 편해지긴 했다.
트랜잭션을 사용한 방법은 아래 링크로
https://minu0807.tistory.com/127
반응형
'Node.js' 카테고리의 다른 글
[NodeJS] Error : Cannot overwrite users model once compiled (0) | 2022.06.24 |
---|---|
[NodeJS] express+mysql2+transaction 데이터 처리 (0) | 2022.03.15 |
[NodeJS] express에서 mysql 사용하기 (1) | 2022.03.09 |
[NodeJS] Error: Unable to load PFX certificate 에러 (0) | 2022.02.23 |
[NodeJS] ElasticSearchAPI putMapping 중 에러 (3) | 2022.01.22 |