Node.js발행일 2022. 10. 21.원본 https://blog.naver.com/jword_/222906730697 ↗

MySQL과 Node js 연동시키기

MySQL과 Node js 연동시키기 — #MySQLNodejs 학습법 이론 학습을 하기 이전, 명심해야할 학습법이 있다. 1.이해가지 않는다고 뒤돌아...

#Node js#Naver Blog

#MySQLNodejs

학습법 이론

학습을 하기 이전, 명심해야할 학습법이 있다.

​

1.이해가지 않는다고 뒤돌아가 다시 보지 말 것

2.외우지 말라

=> 자주 봐서 외워짐을 당하라

=> 구글검색하여 copy and paste하라

  1. 이해하는게 중요하다

=> 왜 생겨났는지?

=> 왜 사용하는지?

===> 응용이 가능해진다.

​

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*); })

일단 복붙하면되는데, 기억해야할 부분은 두가지 있다.

  1. 'select \* from news\_info' => MySQL select문을 그대로 사용하면된다. news\_info는 내가 만든 테이블이름이다.
  2. results 값을 모두 찍으면 MySQL에서 받은 데이터를 Json형태(오브젝트형태)로 반환되는 것을 볼 수 있다.
  3. get('/list') => localhost:4000/list로 접속하면 콘솔창에 데이터가 찍히도록 설정한 것이다.

​

Go to "localhost:4000/list"

이미지

이미지

테이블에 입력한 값들이 json형태로 잘 변환되어 찍히는 것을 볼 수 있다.

​