반응형
1. express-session 및 session-store 설치하기
다음과 같이 express-session과 session-file-store를 설치한다. express-session은 세션을 사용하기 위한 미들웨어이고, session-file-store는 session을 파일로 저장하기 위해 사용하는 미들웨어이다. 만약 DB에 저장하려면 다른 미들웨어를 사용하면 된다.
npm install -s express-session
npm install -s session-file-store
2. 설치한 미들웨어 사용하기
다음과 같이 기존 미들웨어 아래에 설치한 미들웨어를 사용하겠다고 선언한다
var session = require('express-session')
var FileStore = require('session-file-store')(session)
이후 다음과같은 코드를 추가한다. secret은 사용자가 선택하는 String이 될 수 있으며 이 스트링을 통해 암호화한다. store는 방금 설치한 session-file-store를 통해 파일로 저장하겠다는 의미이다.
app.use(session({
secret: 'asadlfkj!@#!@#dfgasdg',
resave: false,
saveUninitialized: true,
store: new FileStore()
}))
3. 세션 스토어를 통한 세션 저장 실습
다음과 같이 사용자가 접속할 경우 session.num을 1로 추가하여 1씩 증가하는 코드이다. 만약 이 코드를 세션 스토어를 사용하지 않고 사용했을 경우에는 node서버를 재시작할 경우 num이 다시 1부터 증가하는 것을 확인할 수 있지만 세션 스토어를 사용할 경우 프로젝트 내부에 session이라는 폴더가 생기고 그 안에 암호화된 세션 파일이 생섬 됨을 확인할 수 있다. 따라서 서버를 재시작하더라도 num이 초기화되지 않는 것을 확인할 수 있다. 이를 이용하면 서버를 재시작하여도 사용자의 로그인이 끊기지 않는다는 등 다양한 구현이 가능해진다.
app.get('/', function (req, res, next) {
console.log(req.session);
if(req.session.num === undefined){
req.session.num = 1;
} else {
req.session.num = req.session.num + 1;
}
res.send(`Views : ${req.session.num}`);
})
반응형
'프로그래밍 > NodeJS' 카테고리의 다른 글
[Javascript] #6 호이스팅이란? (0) | 2020.05.25 |
---|---|
[Javascript] #5 var let const 차이 구분하기 (0) | 2020.05.20 |
[Node.JS / Express 강의] #4 비동기 처리 란? / Promise 란? / async & await란? (0) | 2020.02.16 |
[Node.JS / Express 강의] #2 Express 설명 및 설치방법 (0) | 2019.11.12 |
[Node.JS / Express 강의] #1 Node.JS 설명 및 설치 방법 (0) | 2019.11.05 |