🛴 고객(Customer) DB 테이블 구축 및 Express와 연동하기
0️⃣ DB 이름 사용하기
DB 이름을 management라고 설정했기 때문에 아래와 같이 써주어야 한다.
USE management;
1️⃣ 고객 테이블 만들기
(1) 고객 테이블 만들기
CREATE TABLE CUSTOMER( )
(2) 한글 데이터를 포함하기 위해서 Character 세팅을 UTF 8으로 해준다.
CREATE TABLE CUSTOMER( ) DEFAULT CHARACTER SET UTF8 COLLATE utf8_general_ci;
(3) 필요한 컬럼들을 추가해준다.
CREATE TABLE CUSTOMER(
id INT PRIMARY KEY AUTO_INCREMENT,
image VARCHAR(1024),
name VARCHRAR(64),
birthday VARCHAR(64),
gender VARCHAR(64),
job VARCHAR(64)
) DEFAULT CHARACTER SET UTF8 COLLATE utf8_general_ci;
(4) 실제로 입력한 코드이다. 코드를 입력을 완료한 뒤 실행을 시킨다.
(5) 아래 그림과 같이 정상적으로 CUSTOMER 테이블이 만들어진 것을 확인할 수 있다.
2️⃣ 고객 테이블에 데이터 넣기
(1) 이제 이 테이블에 데이터 값을 넣는 작업을 진행해보겠다. 데이터를 넣을 때는 INSERT INTO VALUES
를 사용한다.
USE management;
INSERT INTO CUSTOMER VALUES (1, 'https://placeimg.com/64/64/1', '동그리', '930121', '남자', '개발자');
INSERT INTO CUSTOMER VALUES (2, 'https://placeimg.com/64/64/2', '당그리', '950214', '남자', '디자이너');
INSERT INTO CUSTOMER VALUES (3, 'https://placeimg.com/64/64/3', '치동', '970402', '여자', '매니저');
(2) 실제로 데이터가 잘 들어갔는지 확인해본다.
USE management;
SELECT * FROM CUSTOMER;
(3) 아래와 같이 깔끔하게 잘 들어간 것을 볼 수 있다.
3️⃣ server에서 해당 DB와 연동하여 데이터 가져오기
(1) database.json 파일 만들기
(2).gitigonore 파일에 /database.json을 추가한다. ( DB에 관련된 정보 유출을 막기 위해 github에 올라가지 않도록 처리)
/database.json
(3) database.json 코드 작성
{
"host" : "앤드 포인트",
"user", : "user",
"password" : "DB 비밀번호",
"port" : "포트 번호",
"database" : "management"
}
(4)npm install --save mysql
명령어를 이용해서 mysql package를 설치한다.
(5) 파일에 접근할 수 있는 라이브러리인 fs 불러오기
const fs = require('fs');
(6) database.json 파일 읽어오기
const data = fs.readFileSync('./database.json');
(7) 해당 환경 설정 데이터를 parsing 해서 가져오기
const data = fs.readFileSync('./database.json');
const conf = JSON.parse(data);
(8) mysql 라이브러리 불러오기
const data = fs.readFileSync('./database.json');
const conf = JSON.parse(data);
const mysql = require('mysql');
(9) 연결과 관련된 변수 설정하기
const connection = mysql.createConnection({
host : conf.host,
user : conf.user,
password : conf.password,
port : conf.port,
database : conf.database
});
connection.connect();
(10) 사용자가 customers 경로에 접속을 한 경우 DB에 접속을 해서 query를 날릴 수 있도록 설정
app.get('/api/customers', (req, res) => {
connection.query( "SELECT \* FROM CUSTOMER",
(err, rows, fields) => {
res.send(rows); }
);
});
(11) yarn dev
명령어를 통해서 실제로 DB에서 데이터를 잘 받아오고 있는지 실행해보고 network도 확인해 본다.
정상적으로 잘 받아와서 출력해주는 것을 볼 수 있다.
4️⃣ 마무리
이로써, AWS RDS로 구축한 mySQL DB에 접근하여 express 서버로 데이터를 가져오는 작업을 완료하였다.
'Tech > Node.js' 카테고리의 다른 글
[NPM] npm sill idealtree buildDeps에서 멈추는 현상 해결 (0) | 2022.10.30 |
---|---|
[Node] Node.js Express에서 파일 업로드 요청 처리 및 DB에 데이터 삽입하기 (0) | 2021.03.17 |
[Node.js] REST API 구축하기 (0) | 2021.03.14 |
[Node] 서버 개발 환경 구축하기 (0) | 2021.03.14 |