2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

node.js 에서 쿠키를 사용하는 기본예제

지금까지 거의 쿠키라는 걸 써 본 기억이 없다..ㅠ
로그인 같은 뭔가 중요한 데이터는 세션을 이용하고 굳이 사용자 컴퓨터에 뭔가를 남겨 둘 기능도 만든 적이 없어서 다른 언어에서도 항상 개념과 기본 문법만 배우고 넘어갔는데..
이번에도 그럴지도?? ㅋㅋ

var express = require('express');
// cookieparser module
var cookieParser = require('cookie-parser');

var app = express();

// 키 값을 이용해서 쿠키를 암호화 가능하게 설정
app.use(cookieParser('2093#urinfw@i9eur0923!r'));

// 테스트용 Data set
var products = {
1:{title:'The history of web 1'},
2:{title:'The next web'},
3:{title:'The node.js guide'}
};

// 상품리스트 라우팅
app.get('/products', function(req, res){
var output = '';
for(var name in products){
output += `
<li>
<a href="/cart/${name}">${products[name].title}</a>
</li>`
}
res.send(`<h2>Products</h2><ul>${output}</ul><a href="/cart">Cart</a>`);
});

// 각 상품 페이지 라우팅
app.get('/cart/:id', function(req, res){
var id = req.params.id;
if(req.signedCookies.cart){
var cart = req.signedCookies.cart;
}
else{
var cart = {};
}
if(!cart[id]){
cart[id] = 0
}
cart[id] = parseInt(cart[id]) + 1;
res.cookie('cart', cart, {signed:true});
res.redirect('/cart');
});

// 카트 리스트 라우팅
app.get('/cart', function(req, res){
var cart = req.signedCookies.cart;
if(!cart){
res.send('Empty cart!!');
}
else{
var output ='';
for(var id in cart){
output += `<li>
${products[id].title} (${cart[id]})
</li>` ;
}
}
res.send(`<h2>Cart</h2>
<ul>${output}</ul>
<a href="/products">Product List</a>`);
});

// 쿠키 테스트 용 코드, 새로고침 하면 숫자가 하나씩 늘어남.
app.get('/count', function(req, res){
if(req.signedCookies.count)
{
var count = parseInt(req.signedCookies.count);
}
else
{
var count = 0
}
count = count + 1;
res.cookie('count', count, {signed:true});
res.send('count : ' + count);
});

// 3003번 포트를 listing
app.listen(3003, function(){
console.log('Connected 3003 port!!!');
});

댓글

이 블로그의 인기 게시물

[메모] PostgreSQL에서 Insert 하는 경우 자동채번 PK가 중복에러 나는 경우

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

[react-native] uuid 생성이 에러가 날 때 대처법