: 부스러기
어떤 데이터든 원하면 저장할 수 있다.
브라우저의 종류에 따라서 독립적으로 동작.
npm install cookie-parser --save
// 쿠키
const cookieParser = require('cookie-parser');
app.use(cookieParser());
...
app.get('/count', function(req, res) {
res.cookie('count', 1);
res.send('count : ');
})
최초에는 쿠키가 없다가 서버에서 쿠키를 만들고 클라이언트로 보내준다.
웹브라우저가 count 요청을 했을때 서버가 쿠키값을 읽어서 웹브라우저로 다시 전송
app.get('/count', function(req, res) {
if(req.cookies.count) {
var count = parseInt(req.cookies.count);
} else {
var count = 0;
}
count = count + 1;
res.cookie('count', count);
res.send('count : ' + count);
})
쿠키를 사용할 때는 정말 중요하지 않는 정보 이외에는 암호화해서 사용하는 경우가 대부분이다.
쿠키를 조금 더 보완한 방식
쿠키를 기본으로 사용, 더 안전하고 더 많은 데이터
쿠키의 기능 + 서버쪽의 데이터 저장공간
npm install express-session --save
const session = require('express-session');
app.use(session({
secret : '1111',
resave : false,
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.get('/login', (req, res) => {
res.render('login.ejs');
})
app.post('/login', (req, res) => {
let userid = req.body.id;
let userpw = req.body.pw;
console.log(userid)
console.log(userpw)
db.collection('login').findOne({id: userid}, function(err, result) {
if(err) return console.log(err);
if(!result) {
res.send("존재하지 않는 아이디입니다.");
} else {
console.log(result);
if(result.pw == userpw) {
// res.send('로그인 되었습니다.')
res.redirect('/');
} else {
res.redirect('/login');
}
}
})
})