[NodeJS] Express와 Sequelize-cli를 사용한 DB 연결

꾸적꾸적·2022년 6월 7일
0

지난 게시물에서, JWT를 쓰는 방법을 공부해보았습니다.

그렇다면, 이번에는 로그인 구현 방법을 공부해볼 차례.

이번에는 이쪽 링크에서 많은 도움을 받았습니다.

NodeJS 및 관련 공부처 :: Victolee 의 tistory 블로그

제일 처음 설치한 것은 Express.

Express란?

NodeJS를 사용해서 개발할때 사용되는 프레임워크의 일종이라고 한다.

Koa나 Hapi 라는게 있다고는 하지만,제일 만만해보이고 관련 내용이 많은 Express를 우선으로 선택하여 공부해보았습니다.


Express 설치

제일 먼저 Express를 사용하기 위해서는 모듈 설치가 필요하다.

모듈에 관해서는 다들 알거라고 생각하고, 설치 방법은, 터미널에 아래를 적으면 된다.

* npm install -g express-generator
express는 express-generator를 설치하여 이를 통해 프로젝트로 설치가 가능하다.
따라서 먼저 express-generator를 설치해주는 것.

여기서 -g는 Global의 줄임말인데,
글로벌로 설치를 해두면 커맨더창 어디서든 실행이 되는,전역변수의 '전역' 개념인듯하다.


Express-generator가 설치 되었으니,
이제 우리가 원하던 express를 설치 하자.

* npm install -e OberSecurity
* cd OberSecurity
위의 방식으로 폴더를 생성해준다.

여기서도 -e 가 궁금할텐데,
이는 E 플래그라고해서,
--save--exact와 동일한 말이다.

보통 설치가 된다면 "^4.0.0" 등으로 버전을 설치하는데,
e플래그를 사용하면 "4.0.0" 으로 버전을 설치한다.
쉽게말하면 정확한 버전으로 설치해서 오류를 줄이는 역할을 하는듯하다.

cd는 cmd를 만져본 사람들이라면 알겠지만, 폴더 이동이다.

예를들어 현재 상태가 D://user 라는 폴더에 지정이 되어있는 상태라면,
D://user//ober 라는 폴더의 파일은 사용을 하기 힘들다.
그때 cd ober 라는 식으로 명령어를 입력해준다면,
D://user//ober 로 지정상태가 변하게된다.


Sequelize 설치

이제 기본 스켈레톤을 설치했으니,

회원가입 & 로그인을 위한 모듈을 설치할 차례.

회원가입 & 로그인에는 DB가 사용될텐데, MySQL을 사용할것이다.

그러니, MySQL 모듈을 설치.

* npm install
* npm install mysql2 sequelize

이제 Sequelize-cli를 설치할것이다.

참고로, Sequelize는 왜 설치하는가 라고 할 수 있는데,
이것이 설치되면 DB와 연결할때 가장 스무스 하게 연결이 가능하다고한다.

Sequelize-cli는 스켈레톤을 추가해주는건데,
쉽게 말하면 기초 토대를 만들어주는것.

웹에 접속하기위한 www파일이라던가, router 라던가 models, view 등
기본적인 ejs파일 또는 js 파일등을 만들어준다고 보면된다.

딱 초보자에게 편한 좋은 방식.

* npm install -g sequelize-cli
이 또한 전역으로 -g를 통해 설치해주자.

sequelize 스켈레톤을 설치했으니,

이제 설정을 할 차례.

* sequelize init

위 명령어를 실행하여,
models, config, migrations 폴더를 생성해준다.

models는 본 프로그램들이 사용되는 폴더로 이용될것이고,
config는 DB 연결을 위한 config.json을 사용할것이며,
migrations 폴더는 이후 create-user.js를 만들어 DB에 저장할 내용을 기입할 예정이다.


DB 연결

이제 DB와 연결을 진행한다.

위에서도 언급했듯, MySQL을 DB로 사용할 예정이였기에,

MySQL 워크벤치를 열어 만들어주었다.

이후, 워크벤치 내에 obersecurity 라는 DB를 생성해준 뒤,

config 폴더 - config.json 내의 development 부분을 수정해준다.

// ../config/config.json

"development": {
    "username": "root",
    "password": "<비밀번호>",
    "database": "obersecurity",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },

위의 작업이 어떤 MySQL의 DB에 접속할지를 결정 해준 것이니,

이제 코드 내에서 접속 코드를 짜주면 DB는 연결된다.

접속코드는 아래와 같다.

// ../app.js

const models = require("./models/index.js");

// DB 연결 확인
models.sequelize.sync().then( () => {
  console.log(" DB 연결 성공");
}).catch(err => {
  console.log("연결 실패");
  console.log(err);
});

이로써, DB와의 연결을 끝냈고,

이제 다음 파트에서 회원가입과 관련된 부분을 진행한다.

profile
개발자를 꿈꾸는 한 명의 초보 개발자

0개의 댓글