express-session은
클라이언트와 서버간에 session을 생성,응용할 때 사용하는 모듈입니다.
보통 아래의 형식같은 미들웨어로 쓰입니다.
여기서 resave와 saveUninitialized의 옵션은 무얼 의미하며, 어떤 차이가 있을까요.
app.use(session({
secret: "my secret",
resave: false,
saveUninitialized: false
}));
모든 request마다 기존에 있던 session에 아무런 변경사항이 없을 시에도
그 session을 다시 저장하는 옵션입니다.
(매 request 마다 세션을 계속 다시 저장하는 것)
어쨌거나 저쨌거나 많은 경우 false를 사용하기 때문에
기본 옵션인 true는 deprecated 상태입니다.
=> 변경사항도 없는 session이 매번 다시 저장되는 걸 막아 작동 효율을 높입니다.
=> 동시에 두 가지 request를 처리할때, 한 쪽에서의 session 변경사항과
다른 한 쪽의 session 변경사항의 충돌을 막습니다.
=> 거의 대부분의 경우 false로 설정을 해줍니다.
=> 세션을 저장하는 store 측에서 touch() 메소드를 사용하지 않으면 true로 해놓습니다.
=> maxAge 옵션을 업데이트 해주는 기능입니다. 그래서 세션이 유지되는 걸 도와주죠.
보통 자동으로 실행되는 기능이지만,
혹여 session을 저장하는 store의 종류에 따라 이 기능을 이용하지 않을 수 있습니다.
(하지만 거의 대부분의 store가 -누군가는 모든 store가 그렇다고 말하기도 합니다.- touch 메소드를 씁니다.)
request가 들어오면 해당 request에서
새로 생성된 session에 아무런 작업이 이루어지지 않은 상황을 말합니다.
saveUninitialized는 uninitialized 상태의 session을 강제로 저장합니다.
따라서 아무 내용 없는 session이 계속해서 저장될 수 있습니다.
=> empty session obj가 쌓이는 걸 방지해 서버 스토리지를 아낄 수 있습니다.
=> 쿠키 사용 정책을 준수하기 위해 false를 쓰기도 합니다.
=> 클라이언트의 서버 방문 횟수에 따라 등급을 달리 하고 싶을 때 쓸 수 있습니다.
pug (템플리트 엔진) (0) | 2020.08.07 |
---|---|
node js / express 이용하기 / 정적 파일 제공 (0) | 2020.07.31 |
node js / express 이용하기 / 라우팅 (0) | 2020.07.30 |
node js / express 이용하기 / express 미들웨어 (0) | 2020.07.30 |
Node.js / express 이용하기 ( res.send() ) (0) | 2020.07.25 |
댓글 영역