MySQL과 Node js 연동시키기
MySQL과 Node js 연동시키기 — #MySQLNodejs 학습법 이론 학습을 하기 이전, 명심해야할 학습법이 있다. 1.이해가지 않는다고 뒤돌아...
#MySQLNodejs
학습법 이론
학습을 하기 이전, 명심해야할 학습법이 있다.
1.이해가지 않는다고 뒤돌아가 다시 보지 말 것
2.외우지 말라
=> 자주 봐서 외워짐을 당하라
=> 구글검색하여 copy and paste하라
- 이해하는게 중요하다
=> 왜 생겨났는지?
=> 왜 사용하는지?
===> 응용이 가능해진다.
MySQL과 Node js 연동시키기
MySQL - Node js 연동하기
이전글에서 백엔드언어는 DB서버와 연동하여 데이터를 불러올 수 있다는 것을 배웠다. 오늘은 대표적인 RDBMS인 MySQL과 백엔드 언어인 Node js를 연동하는 방법에 대해 다뤄보겠다.
node js npm install
node js에서 서버를 만드는 라이브러리인 express를 다운받자.
| npm install express |
|---|
나중에 생길 cors에러를 대비하여 cors미리 설치하자
| npm install cors |
|---|
mysql과 연동할때 필요한 mysql도 다운받자
| npm install mysql |
|---|
node js require
const express = require('express');const app = express(); const port = 4000;const cors = require('cors');app.use(cors());const mysql = require('mysql');app.listen(port, () => { console.log(Example app listening on port ${port})}) |
|---|
require()매서드를 사용하여 모듈을 변수에 모두 담아주자. 여기까지는 그냥 받아들이면 된다. 참고로 port는 mysql port와 다른 번호로 실행해야함 (이것때문에 개고생함...)
app.listen 이 부분은 서버 실행이 잘되면 "Example app listening on port 4000"이 콘솔창에 찍히도록 설정한 것이다.
localhost:4000
localhost:4000
| app.get('/', (req, res) => { console.log('hello'); }) |
|---|
위 코드를 입력 후 주소창에 localhost:4000 을 치면 node js console창에 hello가 찍히는 것을 볼 수 있다. "/"의 의미는 localhost:4000의 메인페이지(?)로 이동시에 콜백함수를 시행한다는 의미이다.
우리는 /list 페이지로 접속 했을때 MySQL데이터를 불러올 것 이다.
ex) /list라면 localhost:4000/list 를 주소창에 입력했을 때 콘솔에 찍힘
| node app.js |
|---|
node js실행시키고 localhost:4000을 접속하면 콘솔창에 "hello"가 찍히는 것을 볼 수 있다.
MySQL 연결
| const connection = mysql.createConnection({ host : 'localhost',// ~~본인의 localhost 넣기 ex) 192.0.~~~ 그냥 localhost적으면됨 port : "3000", //MySQL DB 만들때 설정한 port입력 user : 'id', //MySQL DB 만들때 설정한 id입력 ex)root password : 'password', //MySQL설치시 입력한 비밀번호 ex)123456789 database : 'schema name' //데이터가 들어가 있는 스케마 이름 });connection.connect(); |
|---|
이제 MySQL을 연동해주자. node js로 돌아가서 connetion이라는 변수를 만들고 mysql.createConnetion매서드를 실행\[=.connet()\]한다.
헷갈리면 아래를 참고하자
WorkBench에서 MySQL Connections- +버튼 클릭시 나오는 화면이다. 위 코드표와 같이보면서 이해하면 쉽다. Hostname : localhost,
port = port, database = new\_schema
MySQL 테이블 만들기
news라는 schema를 만들었고, 이제 table을 생성하도록 하겠다.
- table에 마우스를 올리고 우클릭 Create Table 클릭
뉴스기사와 관련된 column을 설정해준다.
- 그냥 대충 생각나는거 넣고 DateType 알맞게 설정 (date =날짜타입, Int= 숫자타입, VARCHAR= 문자타입)
- MySQL DataType은 나중에 다뤄보겠다.
- apply
select \* from news\_info로 테이블 불러오고 아무 뉴스기사나 찾아서 해당값 넣어주자.
이제 데이터는 모두 준비되었다. node js에서 호출 하는 일만 남았다.
MySQL데이터 Node js로 가져오기
| app.get('/list', (req, res) => { connection.query('select \ from news\_info', function (error, results, fields) { if (error) throw error; console.log(results*); }) |
|---|
일단 복붙하면되는데, 기억해야할 부분은 두가지 있다.
- 'select \* from news\_info' => MySQL select문을 그대로 사용하면된다. news\_info는 내가 만든 테이블이름이다.
- results 값을 모두 찍으면 MySQL에서 받은 데이터를 Json형태(오브젝트형태)로 반환되는 것을 볼 수 있다.
- get('/list') => localhost:4000/list로 접속하면 콘솔창에 데이터가 찍히도록 설정한 것이다.
Go to "localhost:4000/list"
테이블에 입력한 값들이 json형태로 잘 변환되어 찍히는 것을 볼 수 있다.







