Node.js-MySQL Study

생활코딩님의 Node.js-MySQL 강의를 보면서 실습한 내용을 정리한 글입니다.
참고: https://youtu.be/1ee5vAou2Y0

Node.js-MySQL 기본 설정 터미널 명령어

package.json 파일을 열어 dependencies 부분 확인!
우리가 사용하는 어플리케이션이 의존하는, 부품으로 사용하고 있는 라이브러리들을 의미
따라서 dependencies로 사용한 라이브러리를 세팅해주어야 원활하게 웹 사이트가 돌아감.

npm install

node.js의 패키지매니저(npm)가 package.json의 dependencies의 내용을 보고 필요한 정보를 다운로드 받아 node_modules 디렉토리에 저장

  pm2 start <설정파일명.js> --watch

node.js를 쉽게 사용하게끔 도와주는 프로세스 매니저인 pm2 시작(무중단 프로세스 제공)
시작 시점에 여러 설정을 할 수 있는데, 그중 --watch 옵션은 파일이 변경되었을때 노드를 재시작 및 감시

  pm2 log

문제가 발생했을때, 문제를 로그로 확인 가능

본격적으로 Node.js와 MySQL을 연결해보자

MySQL 접속을 위한
1. Node.js에서 제공해주는 기본 모듈이 있나?
-없다
2. 그럼 누군가 만든게 있나?
-있다! npm!

1. npm 이용

npm install --save mysql2

--save 설정을 통해 package.json의 dependencies에 저장하기
(+ npm version 5이상 부터는 save 설정 없이도 dependencies에 저장된다고 하니 save 굳이 안 써도 괜찮아요!)

: 다른 곳에서 복제/생성 할때 package.json에 있는 내용을 바탕으로 해서 mysql 쉽게 설치 가능

💡 npm 공식문서: https://www.npmjs.com/package/mysql

2. mysql 모듈 사용


var mysql = require('mysql2');
  // mysql2 모듈을 불러오고, 이제부터 mysql이라고 할게!
  // mysql 로 했더니 오류가 나서, 
  // 서치해보니 mysql2로 하라는 의견이.. 해봤더니 바로 됨. 정말 감사하다.

var connection = mysql.createConnection({
// mysql 변수에 담겨있는 모듈과 관련된 객체에 소속되어 있는 메소드 createConnection
  host     : 'localhost', // mysql 계정의 host 이름
  user     : 'me', // mysql 계정의 user 이름 (ex. root)
  password : 'secret', // 그 user의 비밀번호
  database : 'my_db' // 사용할 데이터베이스 이름
});

connection.connect();
// connection 객체의 connect 이라는 메소드 호출 시 mysql 접속
 
connection.query('SELECT * FROM <테이블명>', // sql문의 첫번째 인자
    function (error, results, fields) { 
  // 두번째 인자로 콜백함수
  // -> 첫번째 인자의 sql이 데이터베이스 서버로 전송되어 실행된 후 콜백함수 실행
  	// if (error) throw error; 
  // error 발생 시 throw는 error 발생했어요!라고 알림

  if (error) {
    	console.log(error);
   // 생활코딩 강의를 보면서 실습중인데, throw 대신 console문을 쓰신다. 왜?
  }
  	console.log(results);
  // 콜백함수의 두번째 인자는 접속결과를 나타냄.
});

connection.end();

💡 자바스크립트의 예외처리 방식의 대한 자세한 내용이 담긴 블로그 주소(https://webclub.tistory.com/71)

🎁 ✏️ 오류 잡자

맥북 m1 사용중인 작성자가, 생활코딩님의 강의(https://youtu.be/udJjxv3IA4k)를 그대로 따라했는데 오류가 나서 검색해도 잘 해결이 안되길래 잠시 빡이 쳤습니다.(물론 주어는 제 자신입니다. 생활코딩 선생님께서는 다음 강의에 해결법도 자세하고 섬세하게 알려주십니다. 그러나 성격이 급한 저는 항상 오류가 나면 강의를 멈추고 오류를 해결하는데 급급한 마음이 앞서서 해결책을 직접 구글링하네요..)
이 글을 본 다른 분들과 미래의 내가 화기애애하게 공부를 했음 하는 마음에 오류 난 코드와 해결한 코드 화면캡쳐 사진을 올립니다.

(왜 오류 잡자 옆에 이모티콘이 선물인지 궁금하세요? 오류에 대해 추상화한 이모티콘을 뭐로 할지 생각중에 오류를 만날때마다 분노조절장애가 되는 나의 모습에 이러다가 오래 못 살것 같아 '오류 = 선물' 이라고 생각하기로 했어요. 좀 더 공부할 수 있게 컴파일러가 주는 선물..)

위의 사진처럼 데이터 베이스의 표의 내용이 객체화 되어 잘 나오면 Node.js와 MySQL 연결 성공!!

좋은 웹페이지 즐겨찾기