react와 express 서버연동 익히기 3편 -mysql DB연동-
1. MySQL 설치
반드시 mysql msi installer를 다운받아 설치
mysql workbench를 옵션으로 다운받아야 편하다
설정은 찾아보면 나오니 생략하고
https://qa-testing.tistory.com/413
[데이터베이스 이론] MySQL 설치(Window 버전)
목차 MySQL 설치(Windows 사용자) MySQL을 컴퓨터에 설치해보겠습니다. MySQL에는 여러 가지 버전이 있습니다. 우리는 이 중에서도 무료로 사용할 수 있는 Community 버전의 MySQL을 설치할 겁니다. 아래 내
qa-testing.tistory.com
2. database 확인
mysql workbench로 들어가서 database 들어가준다.
database - connect to database를 누르거나, 그냥 아래 커다란 네모 누르던가
다음 비밀번호 입력해서 데이터베이스 들어간다
왼쪽 navigator 창에서 아래에 schemas누르면, 데이터베이스 볼 수 있음
database_development쪽이 자주볼 부분?
3. 서버에 연동
먼저 mysql2를 설치
npm install mysql2
다음, backend에서 config 폴더를 만들고, db.js 파일 생성
다음 데이터베이스 정보와 동일하게, db정보를 입력한다
const mysql = require('mysql2')
const db = mysql.createPool({
host: '127.0.0.1',
port: '3306',
user: 'root',
password: '1234',
database: 'database_development'
})
module.exports = db;
저장하고, server.js 파일로 이동하고
require를 이용해 db.js 파일 내용을 가져와 const db에 저장
4. 테스트
테스트를 위해 DB에 다음과 같은 쿼리를 작성하여, test라는 테이블을 만들어둔다.
use database_development;
create table test(
id INT(11) unsigned NOT NULL,
str VARCHAR(32) NOT NULL,
PRIMARY KEY (id)
);
다음, 생성된 테스트 테이블에 테스트용 데이터를 삽입해준다.
insert into test(id,str) values(1,'DB_TEST_COMPLATE!');
select문을 사용해 잘 들어갔는지 확인
다음, 서버 안에서 db로 접근해서 테스트용 데이터를 가져올 수 있는지 테스트해보기
server.js로 들어가서, db로 접근할 수 있는 api 주소와 쿼리문을 추가
//server/server.js
~
app.get('/api/test', (req,res) => {
db.query('select * from test', (err,data) => {
if (!err) {
res.send(data);
} else {
console.log(err);
res.send(err)
}
})
})
~
다음, 클라이언트로 들어가서 src/App.js에 해당 쿼리로 들어온 데이터를 접근할 수 있도록 axios를 이용한 코드 추가
import React, { useState,useEffect } from 'react';
import './App.css';
import axios from 'axios';
const App = (props) => {
const [host,setHost] = useState('');
//data초기화를 객체가 든 배열로 초기화해줌
//가지고 오면 [~]형태인데, 시간차이가 있어서 객체로 초기화하고 바로 data[0]로 접근하면 에러나니까
const [data,setData] = useState([{id:0, str:''}]);
useEffect(()=>{
async function gethost() {
const res = await axios.get('/api/host');
setHost(res.data.host)
}
gethost();
async function getdb() {
const res = await axios.get('/api/test');
setData(res.data)
console.log(data[0])
}
getdb();
},[]) //[]을 의존성배열로 줘서 한번만 렌더링되도록
return(
<div className='App'>
<h3> Welcome to <u> {host} </u> Blog! </h3>
<h3> test data: {data[0].id} & {data[0].str} </h3>
</div>
)
}
export default App;
다음과 같이 나오면, db의 테스트 데이터를 가져온 것이다.
참조
React로 블로그 만들기 04 : RDS(Mysql) 연동 1 (확인 및 연동하기) : 네이버 블로그 (naver.com)
React로 블로그 만들기 04 : RDS(Mysql) 연동 1 (확인 및 연동하기)
이번에는 AWS의 RDS를 이용하여, React 서버와 연동하는 방법을 알아보겠습니다. 먼저 서버와 연동...
blog.naver.com
'프로그래밍 > node.js' 카테고리의 다른 글
react와 express 서버 연동 익히기 5편 -sequelize로 테이블 생성하기- (0) | 2023.01.18 |
---|---|
react와 express 서버 연동 익히기 4편 -sequelize를 이용한 DB와 서버 연동- (0) | 2023.01.18 |
react와 express 서버연동 익히기 2편 -express 서버와 react 클라이언트 연동- (0) | 2023.01.18 |
react와 express 서버연동 익히기 1편 -express 서버 구축- (0) | 2023.01.18 |
sequelize 사용해서 node.js에서 mysql DB 연결하기 (0) | 2023.01.16 |