웹 풀스택
쇼핑몰 만들기 - 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를 통해 서버를 실행시키면 다음과 같이 쿼리문이 잘 출력되는 것을 확인할 수 있다!