웹 풀스택

쇼핑몰 만들기 - DB 생성 후 Node.js 연결

kevinmj12 2025. 2. 5. 15:13

쇼핑몰에 사용될 데이터베이스 환경을 구축해 보자.

먼저 docker에서 MariaDB를 사용할 것이기 때문에, mariadb를 실행해 준다.

 

docker exec -it mariadb /bin/bash

mariadb -u root -p

 

이후 SHOW DATABASES; 를 실행해보면 기본 데이터베이스들만이 존재할 것이다.

 

CREATE DATABASE Tennis; 명령과 USE Tennis; 명령을 통해 Tennis 데이터베이스를 만들고 사용하도록 하자.

 

 

다음으로 CREATE TABLE 명령을 통해 product 테이블을 만들자.

 

이어서 INSERT INTO 명령어로 테이블에 품목들을 추가하여 준다.

 

SELECT * FROM product; 를 실행해보면, 항목들이 잘 추가된 것을 확인할 수 있다.

 

이제 node.js 작업 환경으로 돌아와 연결을 해보자.

먼저 작업 환경에 npm install mysql --save 명령어를 통해 mysql 모듈을 설치해준다.

 

 

데이터베이스 작업 폴더를 만들고, mariadb.js를 만들어 다음과 같이 코드를 작성한다.

// mariadb.js

const mariadb = require("mysql");

const conection = mariadb.createConnection({
  host: "localhost",
  port: 3306,
  password: "1234", // 본인의 mariadb password 입력
  database: "Tennis",
});

module.exports = conection;

 

이제 다른 js파일에서도 maraidb를 연결하여 사용할 수 있게 되었다!

index.js를 수정해주자.

// index.js

let server = require("./server");
let router = require("./router");
let requestHandler = require("./requestHandler");

const mariadb = require("../database/connect/mariadb");
mariadb.connect();

server.start(router.route, requestHandler.handle);

 

잘 연결되는지 확인해보기 위해 다음과 같이 코드를 작성하였다.

// requestHandler.js

const mariadb = require("../database/connect/mariadb");

function main(response) {
  // query를 날려 결과값을 row에 저장
  mariadb.query("SELECT * FROM product", function (err, rows) {
    console.log(rows);
  });

  response.writeHead(200, { "Content-Type": "text/html" });
  response.write("Main Page");
  response.end();
}

function login(response) {
  response.writeHead(200, { "Content-Type": "text/html" });
  response.write("Login Page");
  response.end();
}

function minje(response) {
  response.writeHead(200, { "Content-Type": "text/html" });
  response.write("Kim Minje");
  response.end();
}

let handle = {};
handle["/"] = main;
handle["/login"] = login;
handle["/minje"] = minje;

exports.handle = handle;

 

이후 node index.js를 통해 서버를 실행시키면 다음과 같이 쿼리문이 잘 출력되는 것을 확인할 수 있다!