express 환경에서 mysql을 연동하는 작업을 진행했다. mysql2를 깔고 다음과 같이 처리하면 된다. dotenv를 사용하여 처리한다.
.env
PORT=3000
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=1234
DB_NAME=name
config/mysql.js
const mysql = require("mysql2");
const db_info = {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
};
const pool = mysql.createPool(db_info);
const promisePool = pool.promise();
module.exports = promisePool;
사용할 때는 import를 한 이후에 sql문을 작성하면 된다. 첫번째 인자에는 쿼리를 2번째로 쿼리에 사용되는 값을 배열로 넣어준다.
const db = require("../utils/mysql");
router.get("/getWorldInfo/:id", async (req, res) => {
try {
let roomId = req.params["id"];
let [rows] = await db.query("SELECT * FROM `room` WHERE `id` = ?", [
roomId,
]);
if (rows.length === 1) {
res.send(rows[0]);
return;
} else {
res.send(500);
}
} catch (e) {
console.log(e);
res.send(500);
}
});
// IN 사용 예시
let [roomRows] = await db.query("SELECT * FROM `room` WHERE `id` IN (?)", [
idList,
]);
// SET 여러 개 처리 예시
sql = "UPDATE `room` SET ? WHERE `id` = ?";
params = [{ name: worldName, desc: worldDesc }, id];
'프로그래밍 > Web Basic' 카테고리의 다른 글
Web Storage API 정리 (0) | 2024.01.02 |
---|---|
[Express] S3 이미지 업로드 (0) | 2023.12.24 |
[Express] express 공식 문서 정리 (0) | 2023.12.05 |
Nginx 웹서버 정리 3 (0) | 2023.11.17 |
NginX 웹서버 정리 2 (0) | 2023.11.17 |
댓글