JavaScript/Nodejs

[Nodejs] 로그인 / 회원가입 [ Mysql 세팅 및 연동 / express-mysql-session ]

반응형

글이 잘 보이지 않는다면 우측 하단의 달 모양을 눌러 라이트모드로 변경해주시기 바랍니다.

해당 글은 MacOS 를 기준으로 작성이 되었음을 미리 알려드립니다. WindowOS  를 이용하시는 분은 추후 업로드될 게시글을 기다려주시거나 다른 작성자의 게시글을 확인해주시기 바랍니다.

 


  MySQL 설치하기 - Homebrew 설치

우선, Homebrew 를 설치해야 합니다.

위 링크에서 안내를 해 주는대로 homebrew 를 설치해주시기 바랍니다.

 

  MySQL 설치하기 - MySQL 설치

터미널을 열어줍니다.

터미널에 이와같이 brew update 를 입력하여 homebrew를 업데이트 해주시기 바랍니다. 

이 때 시간이 조금 걸리게 되는데 기달려주시면 아래와같이 나타나게 됩니다.

이와같이 나타나게 된다면 업데이트가 완료된 것 입니다.

이 후 아래 이미지처럼 작성을 해주세요.

원하는 버전이 있다면 맨 뒤에 @5.5 처럼 원하는 버전을 입력해주세요.

이렇게 작성을 하셧다면 설치가 될 것 입니다.

  MySQL 세팅

터미널에서 아래와같이 작성을 해 줍니다.

mysql -u root -p

위처럼 입력을 하시고 비밀번호를 입력하시면

MySQL [(none)]>  이라고 보이게되는데 이 때 이러면 접속이 된 것 입니다.

여기서 비밀번호 설정은 다른분들의 게시글 혹은 추후 업로드될 게시글을 확인해주시기 바랍니다.

 

이제 사용할 데이터베이스를 만들 것 입니다.

#이제 데이터베이스를 추가해보겠습니다
CREATE DATABASE authtest default CHARACTER SET UTF8;
show databases;

 

이렇게 나오게 됩니다. 이는 데이터베이스를 보여주는것으로, 추후에 데이터베이스가 어떤것이 있는지 확인하기 좋습니다.

#이제 authtest 를 선택하겠습니다
use authtest;
CREATE TABLE `authtest`.`user` (
	`id` int NOT NULL AUTO_INCREMENT,
    `userid` varchar(255) NOT NULL,
    `password` varchar(255) NOT NULL,
    `username` varchar(255) NOT NULL,
    `age` int NOT NULL,
    `created` timestamp NOT NULL,
    `modified` timestamp NOT NULL,
    PRIMARY KEY (id)
);

위처럼 코드를 작성해준다면 authtest 안에 user 테이블이 만들어집니다.

#테이블이 잘 추가되었는지 확인을 해 보겠습니다.
show tables;

여기까지 해준다면 로그인 / 회원가입을 위한 MySQL의 세팅은 끝이나게 됩니다.

 

  NodeJS - body-parser / cors 모듈설치 및 적용

현재 저는 ApiTestServer 프로젝트를 안에서 작성을 하고있습니다.

우선, 요청의 본문을 해석해주기위해 body-parser 를 사용하며,

Access-Control-Allow-Origin 을 위해 cors 도 설치하도록 하겠습니다.

yarn add body-parser
yarn add cors

이 두개의 모듈을 설치해주도록 합니다.

 

간혹, body-parser 대신 express 를 사용해도 된다는 말이 있습니다.

맞는말이지만, body-parser 가 express 에 비해 해석의 범위가 더 넓습니다.

body-parser의 경우 Raw, text 의 요청도 해석을 할 수 있습니다.

 

이제 두 모듈 설치가 완료되었다면 최 상위 파일에 아래 코드를 추가해줍니다.

저의 경우는 app.js 이니 app.js 에 추가를 하도록 하겠습니다.

// Modules
const bodyParser = require('body-parser');
const cors = require('cors');

......


app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cors());

 

위와같이 작성을 해주면 적용이 완료가 됩니다.

 

 

 

  NodeJS - express-mysql-session 모듈설치 및 적용

또 두가지의 모듈을 설치해 주어야 합니다.

express-session 과 express-mysql-session 입니다.

yarn add express-session
yarn add express-mysql-session

 

이 후 이 두개의 모듈을 이용해서 mysql  연동을 해줄것 입니다.

const session = require('express-session')
const MySQLStore = require('express-mysql-session')(session)

......

const option = {
    host : 'localhost',
    port : 3306,
    user : 'root',
    password : 'root',
    database : 'authtest'
}
const sessionOption = {
    secret : 'YOUR_SECRET_KEY',
    resave : false,
    saveUninitialized : false,
    store : new MySQLStore(option)
}

app.use(session(sessionOption))

 

이처럼 작성을 해주고, app.js 를 실행해서

이처럼 나온다면 연동과 설치가 모두 끝난것 입니다.

 

추가로 굳이 저렇게 option 과 session 옵션을 나눈 이유는 추후에 다른곳으로 빼기 편하게 하기위함 입니다.

다음은 세션관리를 해보도록 하겠습니다.

반응형