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()을 사용하는것이 맞다.
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);
}
}