본문 바로가기
프로그래밍/Web Basic

[Express] MySql 연동

by YuminK 2023. 12. 17.

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

댓글