반응형
개요
1. 테이블 생성
Workbench 를 사용해 AWS MySQL 접속 후, 테이블을 생성해 준다.
MySQL과 Workbench 설치는 하기 링크에서 다운로드가 가능하다.
test 스키마를 만들고 test 테이블을 생성해 주고 더미 데이터를 넣어 주었다.
2. db연동
db와 연결해 줄 모듈용 js파일을 작성해 준다.
나는 기존에 실습하던 디렉토리에 db 폴더를 생성하고, index.js를 한개 더 생성해 주었다.
코드
const mysql = require("mysql2/promise");
const pool = mysql.createPool({
// 로컬 호스트
host: "localhost",
// db 사용자 이름
user: "root",
// 해당 사용자의 비밀번호
password: "root",
// 사용할 스키마
database: "test",
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0,
});
// 모듈화
module.exports = { pool };
위에서 작성한 코드를 모듈화 하여 require 처리해 주고, db와의 통신이 가능하다.
코드
// db 폴더에 작성해 준 모듈을 가져온다.
const { pool } = require("./db");
const express = require("express");
const morgan = require("morgan");
const test = express();
const PORT = 8080;
test.use(express.json());
test.use(morgan("dev"));
// api/test 주소로 접속하여 비동기 상태로 db의 정보를 가져온다.
test.get("/api/test", async (req, res) => {
try {
// 모든 데이터를 불러 올때까지 await
const data = await pool.query("SELECT * FROM test");
// 성공적으로 데이터를 가져 왔다면 json 형태로 출력
if (data[0]) {
return res.json(data[0]);
}
} catch (e) { // 예외 발생 시 에러 노출
return res.json(e);
}
});
test.listen(PORT, () => `${PORT}`);
실행한 쿼리문이 그대로 실행되어 test 테이블에 있는 모든 데이터가 json 형태로 노출되는 것을 볼 수 있다.
결과
이외에도 CRUD에 해당하는 작업 모두 적절한 쿼리문을 사용하여 db와의 연동이 가능하다.
728x90
반응형
'웹(WEB) > 자바스크립트(JS)' 카테고리의 다른 글
Node.js Firebase 연동, 데이터 파싱(2) getDoc, doc, dayjs (0) | 2024.08.28 |
---|---|
Node.js Firebase 연동, 데이터 파싱 collection, getDocs (1) | 2024.08.28 |
Node.js express 웹서버 (0) | 2024.08.27 |
Node.js REST API, HTTP Request (0) | 2024.08.27 |
Node.js 기초 및 설치 (0) | 2024.08.27 |