記錄

생활코딩_Node.js) session 본문

Web/Node.js

생활코딩_Node.js) session

surhommejk 2018. 8. 5. 13:52

이번 강의에서는 express에서 session을 활용하는 법에 대해서 배웠다. 스프링과 달랐던 점은 굳이 플러그인을 설치해야 한다는 것 말고는 특별히 다른 것이 없었다. 생각해보면 스프링에서 import 하는 모든 것들이 npm에서 install 하는 것과 같은 것 같다.


var express = require('express');
var session = require('express-session');
var app = express();

app.use(session({
// session 값 저장에 쓰이는 암호화 key
secret: '1234DSFs@adf1234!@#$asd',

// 접속 할 때마다 매번 새로운 session 발행 여부
resave: false,

// 세션이 저장되기 전에 uninitialized 상태로 미리 만들어서 저장
saveUninitialized: true
}));

app.get('/count', function(req, res){
if(req.session.count) {
req.session.count++;
} else {
req.session.count = 1;
}
res.send('count : '+req.session.count);
});

app.listen(3003, function(){
console.log('Connected 3003 port!!!');
});

 

1. npm 설치

npm install express-session --save


2. 미들웨어 탑재

var session = require('express-session');
var app = express();

app.use(session({
// session 값 저장에 쓰이는 암호화 key
secret: '1234DSFs@adf1234!@#$asd',

// 접속 할 때마다 매번 새로운 session 발행 여부
resave: false,

// 세션이 저장되기 전에 uninitialized 상태로 미리 만들어서 저장
saveUninitialized: true
}));


3. 사용 및 테스트

app.get('/count', function(req, res){
if(req.session.count) {
req.session.count++;
} else {
req.session.count = 1;
}
res.send('count : '+req.session.count);
});


뻔한 이야기지만 새로 서버를 시작하게 되면 session 객체를 새로 만들기 때문에 session id 값이 변하는 여부와는 상관없이 데이터가 모두 날아가게 되어서 처음부터 시작하게 된다.

Comments