Node.js

[NodeJS] express에서 mysql2 사용하기

SongMinu 2022. 3. 10. 18:27
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

 

[NodeJS] express+mysql2+transition 데이터 처리

맥북에 mysql 5.7 설치 후 진행했습니다. connection pool 생성 후 트랜지션을 이용해 정상 처리시 commit을 에러시 rollback을.. 커넥션풀 생성 const mysql = require('mysql2/promise'); const { MYSQL_HOST, MYSQL_USER, MYSQL_PW

minu0807.tistory.com

 

반응형