개요

node mysql 패키지의 연장선이다. 최신 MySQL의 보안에 맞춰 비밀번호의 해시화가 자동으로 이뤄지기에 쓸데없는 오류가 발생하지 않으며, 동기처리를 위한 await의 사용을 위해 필수적이다.

사용 (공식문서)

사용은 기존 [MySQL Package Node.js](https://dori2005.notion.site/MySQL-Package-18555453b51740afa9e035e2c393170c)와 동일하다.

하지만 동기처리를 위해서는 모듈을 받아올 때, /promise 경로를 추가해 주어야한다.

<aside> 💡 npm i mysql2

</aside>

const mysql = require('mysql2/promise');

const pool = mysql.createPool({
    host : 'localhost',
    user: 'regmaster',
    password: 'reg1234',
    database:'REG_DB',
    connectionLimit: 4,
});

여전히 createConnection또한 사용 가능하지만, connection을 생성할땐, await와 함께 사용해야함으로, 모듈 전역에 설정하려면 createPool()을 사용하는것이 맞다.

Query


const postLoginTest = async(callback, id) => {
    try {
        const conn = await pool.getConnection();
        const [rows, fields] = await conn.execute('SELECT pw FROM login WHERE id=?',[id]);
        callback(rows);
        conn.release();
    } catch (err) {
        console.log(err);
    }
}
  1. 동기 처리를 위해 try catch문을 사용
  2. await로 반환될 Promise를 받아줄 변수를 꼭 선언해둬야한다.