session 데이터를 저장하는 장소를 Session store라고 한다. express-session 모듈의 default 저장소는 MemoryStore다.  이 저장소는 휘발성이 강하고 안전성이 없기 때문에 대부분 session store를 따로 지정해서 사용한다.그 중 mysql DB에 session 객체를 저장하는 모듈인 express-mysql-session을 사용해서 express-session의 option이 어떻게 작동하는지 알아보고자 한다. 

 

1. express-mysql-session 설치 

npm install express-mysql-session

 

2. 기본 사용법

var express = require('express');
var app = module.exports = express();
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);

var options = {
	host: 'localhost',
	port: 3306,
	user: 'session_test',
	password: 'password',
	database: 'session_test'
};

var sessionStore = new MySQLStore(options);

app.use(session({
	key: 'session_cookie_name',
	secret: 'session_cookie_secret',
	store: sessionStore,
	resave: false,
	saveUninitialized: false
}));

 

session_test라는 database안에 sessions 라는 테이블이 생성된다.
sessions 테이블의 field 목록

sessions의 테이블에 session 객체들이 자동으로 저장된다. 

 

saveUninitialized 옵션이  false 일 경우 변동이 있는 session 객체만 저장된다. 

변동된 session 객체가 DB에 담긴다

saveUninitialized 옵션이 true 일 경우 초기화 상태의 session과 변경된 session이 같이 저장된다. 

초기 session 객체와 변경된 session이 같이 저장된다.

 

'학습' 카테고리의 다른 글

프로젝트 중 환경변수 문제  (0) 2021.11.12
sudo: npm: command not found  (0) 2021.11.10
Session  (0) 2021.10.23
express 미들웨어 CORS - configuration options  (0) 2021.10.21
useHistory 사용법  (0) 2021.10.15